Invocation of accessory-specific user experience

ABSTRACT

An accessory-specific user experience can be invoked at a mobile host device attached to an accessory device. The mobile device can receive accessory device information from the accessory and transmit the accessory device information to an online marketplace. The mobile device can receive information indicating accessory-specific goods or services available from the online marketplace and display the received information as part of the invoked user experience. The accessory device information can comprise accessory usage categories as well as additional information about the accessory. A marketplace can select accessory-specific goods or services based on the received accessory device information based on matching between accessory attribute values associated with the goods and services and accessory attributes values contained in the received accessory device information. The accessory device can be a docking station connected to additional accessories and the accessory device information can comprise information pertaining to the additional accessories.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a divisional of U.S. patent application Ser. No.12/917,170, filed Nov. 1, 2010, which is a continuation-in-part of U.S.patent application Ser. No. 12/826,551, filed Jun. 29, 2010, and claimspriority to, and the benefit of, U.S. Provisional Application Nos.61/264,206, filed Nov. 24, 2009, and 61/324,236, filed Apr. 14, 2010.Each of the above-listed patent applications is incorporated herein byreference.

FIELD

The present disclosure relates to the invocation of a user experience ata mobile host device that is specific to an accessory connected to themobile device

BACKGROUND

Modern computing and mobile devices (smart phones, laptop computers,etc.) should be capable of physically connecting to and communicatingwith a wide variety of accessory devices (desktop computers,televisions, stereo receivers, etc.). Various communication interfacesare used to connect these devices and the physical connectors associatedwith the interfaces are usually incompatible. Thus, an electronic devicemay comprise several physical ports to allow connection to variousaccessories

Some physical connectors can support more than one communicationinterface. Typically, each pin of such connectors supports only onefunction (data in, data out, clock, etc.) of an interface. Thus, theseconnectors often have a large pin count and consume extra device realestate, a precious commodity in hand-held devices. These connectors alsosuffer from low pin utilization if only one interface is used. Thus, theextra space consumed may not be put to efficient use.

To accommodate modifications to existing interfaces or entirely newinterfaces, the physical design of a connector can be modified.Redesigned connectors are often incompatible with the previous designs,resulting in older devices unable to communicate with newer ones.Retrofitting a new connector design into existing devices is oftendifficult as connectors are typically integrated into a device. Thus,older devices may require physical adapters or other specializedhardware to communicate with newer devices. Connectors can be designedwith extra pins to allow for future support of new interfaces andfunctions, but this also increases connector size and the extra pinswill remain unused until the new interfaces are developed.

Multiple communication interfaces have been integrated into a singlephysical connector. For example, the VESA (Video Electronics StandardsAssociation) DisplayPort Interoperability Guideline, Version 1.1a, setsa guideline for enabling interoperability between DisplayPort and otherdisplay standards through cable adapters. However, this approach relieson physical adapters to support the physical connection between multipleinterfaces. Physical adapters can be more costly and complicate theconnection scheme, especially for home users.

In addition, the accessories to which modern mobile computing devicesare capable of connecting possess a wide-range of functionalities andare capable of performing a wide variety of functions.

Mobile computing devices, when purchased, may not be installed with thesoftware or firmware required to support various accessories capable ofbeing connected to the mobile device. Typically, mobile devices obtainthe relevant program code, by loading it from storage media includedwith the accessory upon purchase, or by downloading the appropriatesoftware or firmware from an online service provided by an accessorymanufacturer, vendor, retailer or third party. Determining whichsoftware or firmware to install or download can require that the usermanually supply identifying information about the device to the service,such as the accessory manufacturer, type, serial number or otherfeatures of the accessory.

Online services exist that offer goods and services for a wide array ofmobile device accessories. A large number of goods and services can bepresented by a single marketplace, but a user can limit the number ofgoods and services presented to them by typically manually providingsearch criteria to the service. However, the search criteria may notrestrict the offered goods and services to the degree desired by theuser. The number of search fields offered by the service may be too few,too many or may not include accessory attributes that a user wishes touse to restrict their search.

Accordingly, there is a need for a method of automatically detecting theavailability of goods and services that are compatible with or relatedto an accessory attached to a mobile computing device.

SUMMARY

A connector and method are disclosed that allow for dynamicconfiguration of a connection between a host device, such as a mobilephone, and an accessory. The connection comprises a connector of a hostdevice connected to a connector of an accessory device. Each connectorcan be capable of supporting a set of functions, features, interfaces,protocols, etc. The host device can select from a set of mutuallysupported functions based on information about an accessory device, thehost device or a combination of both. Host and accessory deviceinformation can include power consumption levels, which applications arecurrently being executed, how the device is being powered and the like.

The host device can request that a connected accessory device beauthenticated before connector functions are enabled. Additionally, thehost device can authenticate an accessory device using certificate-basedauthentication (e.g., trusted root certificates). Alternatively, asymmetric key (e.g., shared secret) solution can be used. Likewise, theaccessory device can authenticate the host device in a similar fashion.Two-way authentication, in which the host and accessory devicesauthenticate each other, is supported as well.

Host and accessory devices can operate according to various licensingpolicies to control access to connector functions or device resources.Before allowing a connector function to be enabled, a host or accessorydevice can require that the host device be licensed to access a specificaccessory connector function, or to gain access to accessory deviceresources. Licenses can be required for a host device to download songsstored at an accessory, print out pages at an accessory printer, or toenable high performance accessory interfaces. Tiered licensingapproaches can be supported that allow host device users to purchasemore expensive licenses for greater or improved access to resources.

Also disclosed are methods for invoking a user experience at a mobilehost device, such as a mobile phone, that is specific to an accessoryattached to the mobile device.

The mobile device can receive information about the accessory devicefrom the accessory. The accessory device information can includesuggested usage categories for the accessory, which indicate how theaccessory can be operated, such as a home theater docking station. Themobile device can transmit accessory device information to an onlinemarketplace and receive goods and services selected by the onlinemarketplace that are associated with the connected accessory. Theselected goods and services can comprise software applications andupgrades, firmware, media content, along with various others goods andservices. The mobile device can invoke an accessory-specific userexperience from which a user can, for example, select accessory-specificsoftware applications or upgrades to be downloaded and installed at themobile device.

Configuration of the connection can be unilateral, in which the hostdevice selects which functions a host-accessory connection is tosupport, or bilateral, in which both the host and accessory devicesparticipate in function selection. In a bilateral configuration, theaccessory device can exclude functions from the list of functionssupported by the accessory device that is sent to the host device. Theaccessory device can exclude functions based on information about theaccessory device, the host device, or both devices.

In one example, the mobile host device can be a mobile phone connectedto a vehicle docking station. The mobile phone can receive informationfrom the vehicle dock about the vehicle, including the vehicle make andmodel, what software is stored in the vehicle, gas and oil levels andsystem diagnostic information. The mobile phone can transit thisinformation to an online marketplace and, in return, receive informationindicating goods and services for the vehicle such as software upgradesfor the vehicle, vehicle mode applications for installation at themobile host device for interacting with the vehicle, or nearby gasstations or vehicle mechanics. The user can select a provider of anaccessory-specific service, such as a mechanic, and have accessorydevice information sent to the provider.

In another example, the mobile device can be attached to a home theaterdocking station which is in turn connected to various additional hometheater components such as speakers, an audio-visual receiver and atelevision. The mobile device can receive information about the hometheater components, transmit this information to an online marketplace,and receive information about what media content, software applicationsor other goods and services can be played back or are otherwise capableof being used with the home theater system.

The online marketplace comprises information about accessories andaccessory-specific goods and services provided by accessorymanufacturers, vendors, retailers and third parties. The goods andservices can be tied to accessories generally. For example, a softwareapplication capable of outputting audio can be made available to anymobile host device connected to an accessory having audio playbackcapabilities, or a navigation application can be made available to anymobile host device connected to accessory having global positioningsystem capabilities. The goods and services can also be tied to specificaccessories. For example, a vehicle dock application may only be madeavailable to a mobile host device connected to a vehicle of a specificmake and model, or firmware upgrades may only be made available toaccessory devices having a specific model number and manufacture date.

The online marketplaces can comprise a database of goods and servicesthat are tied to specific accessories possessing certain accessoryattribute values. An online marketplace can select accessory-specificgoods and services by matching accessory attribute values included inaccessory device information received from a mobile host device withaccessory attribute values associated with the accessory-specific goodsand services. The online marketplaces can be expanded as new accessoriesare developed.

The foregoing and other objects, features and advantages of theinvention will become more apparent from the following detaileddescription, which proceeds with reference to the accompanying Figures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an exemplary mobile host device connected to one of severalaccessories by a host connector.

FIG. 2 is a block diagram of an exemplary mobile host device connectedto an exemplary accessory device.

FIG. 3 is a flowchart of a first embodiment of an exemplary method ofconfiguring a mobile host device connector for connecting to anaccessory device connector.

FIG. 4 is a block diagram of an exemplary mobile host device showingseveral multi-function pins capable of being controlled by multiple pincontrollers.

FIG. 5 is a flowchart of an exemplary method of reconfiguring a hostconnector to enable a high data rate connector function.

FIG. 6 is a flowchart of an exemplary method of reconfiguring a hostconnector in response to a second accessory being connected to a mobilehost device in place of a first accessory or otherwise being connectedto the mobile host device after being disconnected.

FIG. 7 is a flowchart of a first embodiment of exemplary method ofconfiguring an accessory connector connected to a host connector.

FIG. 8( a) is a top view of an exemplary physical implementation of thehost connector of FIG. 4.

FIG. 8( b) is an end view of an exemplary physical implementation of thehost connector of FIG. 4.

FIG. 8( c) is a bottom view of an exemplary physical implementation ofthe host connector of FIG. 4.

FIG. 9 shows an exemplary mobile host device connected to multipleaccessories by a host connector connected to an accessory dockingstation device.

FIG. 10 is a block diagram of an exemplary docking station accessorydevice capable of connecting to the host connector of FIG. 4.

FIG. 11 is a schematic diagram of a stereo cable accessory with built-inFM antenna connected to the exemplary host connector of FIG. 4.

FIG. 12 is a schematic diagram of a passive dock accessory with audiooutput and synchronization and charge support connected to the exemplaryhost connector of FIG. 4.

FIG. 13 is a schematic diagram of an active accessory device with HDMIand optical SPDIF output functions connected to the exemplary hostconnector of FIG. 4.

FIG. 14 is a schematic diagram of a phone powered FM transmitteraccessory connected to the exemplary host connector of FIG. 4.

FIG. 15 is a flowchart of a second embodiment of an exemplary method ofconfiguring a mobile host device connector for connecting an accessorydevice connector.

FIG. 16 is a flowchart of a second embodiment of an exemplary method ofconfiguring an accessory connector connected to a host connector.

FIG. 17 is a flowchart of additional operations that can be performed aspart of the flowchart shown in FIG. 15 for operating a connection inconformance with host device licenses and disabling connector functionsin response to the expiration or revocation of a license.

FIG. 18 is a flowchart of an exemplary method of configuring a mobilehost device connector for connecting an accessory device connectorincluding authenticating the accessory device.

FIG. 19 is a block diagram of an exemplary mobile device.

FIG. 20 is a block diagram of a cloud computing environment in whichhost and accessory devices can operate.

FIG. 21 is a block diagram of a mobile host device phone attached to anaccessory device home theater docking station and in communication withcloud computing environment.

FIG. 22 is a flowchart of a first exemplary method of invoking anaccessory-specific user experience at a mobile host device.

FIG. 23 is an interior view of a vehicle with a mobile host deviceattached to a vehicle docking station.

FIG. 24 is a flowchart of an exemplary method of providingaccessory-specific information to a mobile host device from an onlinemarketplace.

FIG. 25 is a flowchart of a second exemplary method of invoking anaccessory-specific user experience at a mobile host device.

FIG. 26 illustrates an exemplary mobile host device attached to aspeaker accessory adapter integrated into a media player.

DETAILED DESCRIPTION

As used in this application and in the claims, the singular forms “a,”“an,” and “the” include the plural forms unless the context clearlydictates otherwise. Additionally, the term “includes” means “comprises.”

The systems, apparatuses and methods described herein should not beconstrued as limiting in any way. Instead, the present disclosure isdirected toward all novel and non-obvious features and aspects of thevarious disclosed embodiments, alone and in various combinations andsub-combinations with one another. The disclosed systems, methods, andapparatuses are not limited to any specific aspect or feature orcombinations thereof, nor do the disclosed systems, methods, andapparatuses require that any one or more specific advantages be presentor problems be solved.

Although the operations of some of the disclosed methods are describedin a particular, sequential order for convenient presentation, it shouldbe understood that this manner of description encompasses rearrangement,unless a particular ordering is required by specific language set forthbelow. For example, operations described sequentially can in some casesbe rearranged or performed concurrently. Moreover, for the sake ofsimplicity, the attached figures cannot show the various ways in whichthe disclosed systems, methods and apparatuses can be used inconjunction with other systems, methods and apparatuses. Additionally,the description sometimes uses terms like “produce” and “provide” todescribe the disclosed methods. These terms are high-level abstractionsof the actual computer operations that are performed. The actualcomputer operations that correspond to these terms will vary dependingon the particular implementation and are readily discernible by one ofordinary skill in the art.

Theories of operation, scientific principles or other theoreticaldescriptions presented herein in reference to the apparatuses or methodsof this disclosure have been provided for the purposes of betterunderstanding and are not intended to be limiting in scope. Theapparatuses and methods in the appended claims are not limited to thoseapparatuses and methods that function in the manner described by suchtheories of operation.

Turning now to the drawings, FIG. 1 shows a host mobile device 100(host), such as a mobile phone, connected to an accessory device(accessory) 150 by a physical connection 140 (e.g., a multi-wire cable).The accessory 150 can be, for example, a personal computer 110, atelevision 120, an audio player 130 or a mobile device. The physicalconnection 140 connects a host connector 160 to an accessory connector115, 125 or 135 integrated into an accessory 110, 120 or 130. Theconnectors 160, 115, 125 and 135 generally are either male or female andinclude a grouping of two or more physical pins. The connection 140 cansupport a wide range of connectors, communication interfaces, protocols,features and functions. For example, the connection 140 can comprise USB(Universal Serial Bus), HDMI (High Definition Multimedia Interface),PCI-Express, DisplayPort, MHL (Mobile High-Definition Link), SATA(Serial ATA) and/or SPDIF (Sony/Philips Digital Interface) connections.The connection 140 can also support mass storage, CD/DVD-ROM, web-camand HID (Human Interface Device) devices or an FM transmitter. Theconnection 140 can be as simple as a stereo cable with a built-in FMantenna. The connection 140 can support one or more of theseconnections, interfaces, features or functions operating concurrently.For example, the connection 140 can simultaneously support both USB 3.0and HDMI, with separate cables or a single cable providing the physicalUSB and HDMI connections. In addition, the connection 140 can supportadditional protocols such as 5.1 audio or Ethernet via tunneling overone or more supported protocols, such as USB or PCI-Express. The terms“function,” “features,” “interface,” “protocol” and “connector” may beused interchangeably and refer to any feature, function, interface,connection, connector, etc. supported by a connection between a hostdevice 100 and an accessory device 150.

Although shown as a mobile phone, the host device 100 can be any type ofgeneral computing or mobile device such as a personal computer, mediaplayer or personal digital assistant. In general, the host device can behandheld or mobile but the connector described herein can also be usedon devices that are typically not handheld or mobile, such as a desktopcomputer. An accessory 150 can be any device capable of physicallyconnecting to and being electronically coupled with the host device 100.For example, in addition to the accessory personal computer 110,television 120 and audio player 130, the accessory 150 can be a set ofheadphones, a microphone, an FM antenna or other device.

The terms “host” and “accessory” as used herein indicate a master-slaverelationship between connected devices with respect to the discovery ofa function set supported by an accessory connector and configuring thecapabilities of the host and accessory connectors. As discussed indetail below, the host device is typically the master device. The hostdevice requests information from the accessory device, selects theconnector functions to be enabled, and instructs the accessory device toenable the selected connector functions. The accessory device istypically the slave device. The accessory device sends requestedinformation to the host device and configures accessory connectorfunctions in response to instructions received from the host device.Alternatively, a peer-to-peer relationship can be implemented betweenthe host and the accessory.

The host 100 can be connected to a communication network 180 via acommunication link 170. The communication link 170 can be a wired orwireless link. The communication network 180 can be a personal areanetwork (PAN), local area network (LAN), the Internet, a cellular orsatellite mobile communication network, or any other communicationnetwork. The communication configuration shown in FIG. 1 allows users toperform a wide variety of operations. For example, the host device 100can download or stream media files (audio, video, etc.) provided byservers 185, 190 and 195 for output at an accessory device 150. Inanother example, the host 100 can download or upload information to thepersonal computer 110 to synchronize the host 100 with informationstored on the computer 110.

FIG. 2 is a block diagram of an exemplary host 200 connected to anexemplary accessory 250 via a cable, shown generally at 202. The host200 and accessory 250 can be connected by coupling of a host connector220 and an accessory connector 270. Such couplings can be releasablyattachable, such as through cable connections or matingfemale-/male-type connectors. The host 200 can comprise a controller210, the host connector 220 and a host connector function store 230. Thecontroller can be any microprocessor or microcontroller, as is known inthe art. The host 200 can also comprise a media store 240. The hostconnector 220 can comprise M fixed-function pins 224 and Nmulti-function pins 228 where M and N are any integer numbers dependingon the particular application. Each of the fixed-function pins 224 canhave a dedicated function, such as providing a power or groundconnection or hosting the function of a pin of a USB port. The functionssupported by the fixed-function pins typically are not changed duringoperation of the host device. That is, the fixed-function pins are notconfigurable. Each of the multi-function pins 228 can be configurableand can support more than one function. For example, a multi-functionpin can operate as a USB pin in a first configuration, an HDMI pin in asecond configuration, and a DisplayPort pin in a third configuration.

The host controller 210 can be coupled to the host connector 220, thehost connector function store 230 and the media store 240. The hostconnector function store 230 stores one or more functions supported bythe host connector. Thus, the function store 230 stores a plurality ofpossible pin configurations that can be dynamically applied to theconnector 220 for on the fly pin configurations. The host controller 210can reference the host connector function store 230 when determiningwhich host connector and accessory connector functions to enable. Afunction can specify, for example, an interface supported by the hostconnector (HDMI, DisplayPort, PCI-Express, etc.) and can include amapping of connector pins to interface pins. For example, a functionindicating that the host connector 220 supports HDMI can indicate thathost connector pin 13 is configured to operate as the DDC DATA pin, pin15 is configured to operate as the DDC_CLK pin, etc. The storedfunctions can also indicate the functions of fixed-function pins. Forexample, a stored function can indicate that pin 1 of the host connector220 can operate as an FM antenna, pin 3 can operate as analog ground,etc. The media store 240 can store one or more media files (audio,video, etc.) that can be communicated across a host-accessoryconnection. As will be described in detail below, the host controller210 can select which connector functions can be enabled in ahost-accessory connection. The host connector function store 230 and themedia store 240 can be memory, such as volatile memory (e.g., registers,cache, RAM), non-volatile memory (e.g., ROM, FPGA, EEPROM, flash memory,etc.) or some combination of the two.

The accessory device 250 comprises a controller 260, a connector 270 andan accessory connector function store 280. The accessory connector 270can comprise M fixed-function pins 274 and N multi-function pins 278.The host connector fixed-function pins 224 can be connected to theaccessory connector fixed-function pins 274, and the host connectormulti-function pins 228 can be connected to the accessory connectormulti-function pins 278. The pins of the host connector 220 can bearranged such that the fixed-function pins 224 and the multi-functionpins 228 are physically interspersed among each other. Alternatively,the fixed-function pins 224 can be physically arranged to be separatefrom the multi-function pins 228. The pins 274 and 278 of the accessoryconnector 270 can be similarly arranged. The host and accessoryconnectors 220 and 270 can comprise one or more physical ports orconnectors. For example, the host connector 220 can comprise a micro-USBport comprising a set of fixed-function pins and a second portcomprising the remainder of the fixed-functions pins and themulti-function pins. In another example, a connector can comprise asingle physical port that includes all of the connector pins.

The accessory controller 260 can be connected to the accessory connector270 and the accessory connector function store 280. The accessoryconnector function store 280 can store functions supported by theaccessory connector in a manner similar to that described above inregard to the functions stored in the host connector function store 230.

Although the host and accessory devices in FIGS. 1 and 2 are shown asone connector, any of the host or accessory devices described herein cancomprise more than one connector. For example, a pass through accessorycan be implemented with both a male and female connector. Or, forexample, host 200 can comprise multiple connectors 220, allowing thehost 200 to simultaneously connect to multiple accessories 250. The hostcontroller 210 can be connected to each of the host connectors. In oneembodiment of a host device connected to multiple accessory devices viadynamically configurable connectors, a mobile phone host device canconnect to an external speaker system and a personal computer.Similarly, accessory 250 can comprise multiple connectors 270 to allowconnection to multiple hosts 200. In one embodiment of an accessorydevice connected to multiple host devices via multiple dynamicallyconfigurable connectors, an accessory television can be connected tomultiple host mobile phones.

FIG. 3 is a flowchart of a first embodiment 300 of an exemplary methodof configuring a mobile host device for connecting to an accessory. Thehost connector can be dynamically configured in response to an accessorybeing attached to the host device, operations or transactions that arebeing performed or scheduled to be performed, etc. For example, themethod 300 could be executed in response to a mobile player beingreleasably attached to a television. At 310, the mobile host device canselect connector functions to be enabled for connecting a mobile hostdevice to an accessory. Information regarding the accessory connectorfunctions can be received from the accessory or another source, and canbe stored at the host device. Such information can be communicated viathe fixed pins. Additionally, such information can be received inresponse to a request from the host device. At 320, the mobile hostdevice can configure pins of the mobile host device connector. Forexample, configuring the pins can comprise assigning each pin to beconfigured a pin function associated with one of the selected connectorfunctions. For example, if the mobile host device selects the USBinterface to be enabled, configuring the pins can comprise assigningindividual host device connector pins to support the DATA−, DATA+, VCCand VDD pin functions of the USB interface. Configuration of the pinscan be static (i.e., the pin configuration for a given function can bedetermined during host and accessory device design and implementedduring device manufacture) or the pin configuration can be dynamic. Forexample, in dynamic pin configuration, during operation of the mobilehost device, a first multi-function pin can support the DATA− pinfunction and a second multi-function pin can support the DATA+ pinfunction in a pin configuration supporting USB. Connector pinconfiguration can comprise the host device enabling the selectedconnector functions. Prior to 320, the host connector can beunconfigured or previously configured. An unconfigured connector canhave one or more connector functions disabled or a set of defaultfunctions enabled. Pins that are not enabled in a particularconfiguration can be kept in a high impedance state until configured.Hardware for putting pins into high-impedance mode is well known in theart, such as tri-state gates.

In some embodiments, enabling the selected connector functionscomprises, for each of the pins to be configured, configuring the hostdevice such that one of a plurality of host device pin controllers(discussed below in regards to FIG. 4) controls (i.e., transmits andreceives signals from) the pin. For example, if pin 13 of the hostmobile phone is capable of being controlled by an HDMI DDC DAT pincontroller or a PCIEX CLK+ pin controller, the mobile phone can beconfigured such that the HDMI DDC DAT pin controller controls pin 13.For example, the HDMI DDC DAT pin controller can be enabled and thePCIEX CLK+ pin controller can be disabled, or, if the pin controllersare connected to pin 13 by a switch, the switch can be configured toconnect the HDMI DDC DAT controller to pin 13.

At 330, the host device can instruct the accessory device to configurethe accessory connector pins to support the selected functions. Themobile host device can instruct the accessory by sending an instructionover the host-accessory connection. This instruction can constitute a“function set” or “mode set” command. The instruction can specify whichfunctions that have been selected by the host device are to be enabledin which pins of the accessory connector. In the example of a mediaplayer being connected to a television, after process block 330, theconnection can be configured to support HDMI or another multimediainterface. Optionally, the host device can receive acknowledgement orconfirmation that the accessory device has successfully enabled theselected accessory connector functions. After configuring the hostdevice connector pins, the host device can load drivers to support theenabled connector functions. The drivers can be loaded from the hostdevice store 230, or downloaded from a remote resource connected to thehost device over a network. In addition, the host device can then informapplications and other devices connected to the host device that theenabled functions are available for use. The host device can then beginappropriate communications over the host-accessory connection using theenabled connection functions.

In other embodiments, the method 300 can further comprise authenticationof an accessory. A host device can send an authentication request to theaccessory device. In response, the accessory can provide authenticationinformation to the host. The accessory device can send its device class(audio, video, mass storage, human interface device, etc.) and sub-classto the host device, along with a digital certificate and/or otherauthentication information.

One technique for using digital certificates is through the use of aroot certificate. A root certificate is either an unsigned public keycertificate or a self-signed certificate that identifies the RootCertificate Authority (CA). A root certificate is thus part of a publickey infrastructure (PKI) scheme. The most common commercial variety isbased on the ITU-T X.509 standard, which normally includes a digitalsignature from a certificate authority (CA). Other certificate-basedauthentication schemes can be used. Non-PKI-based solutions such assymmetric key (e.g., shared secret) can be used for authentication.

The host device can attempt to authenticate the accessory device basedon the received information. If the host device can authenticate theaccessory, the host device can configure the accessory connector. Thatis, the accessory can enable a set of accessory connector functions inresponse to receiving a “function set” instruction from the host. Thehost can request authentication information from accessories havingconfigurable connectors, such as personal computers and mobile devices.Authentication may not be required for certain classes of accessories,depending on the accessories' supported feature set. Authentication canoccur over the control channel of the host-accessory connector.

FIG. 4 is a block diagram of an exemplary host device 400 showingseveral fixed and multi-function pins 426 capable of being controlled bypin controllers 412-419 and 421. The host 400 comprises a controller410, a connector 420, a host connector function store 430 and a mediastore 440. The connector 420 comprises 34 pins physically arranged intwo different groups. The first group of pins 426 comprises 29 pins(pins 1 through 29) and contains a combination of fixed-function andmulti-function pins. The second group of pins 422 comprises fivefixed-function pins (pins 30-34) which can be compatible with themicro-USB specification published by the USB Implementers Form(available at http://www.usb.org/). In some embodiments, select pinswithin the first group of pins 426 can be used to discover the functionssupported by an accessory connector connected to the host 400. Forexample, pins 10 and 12, controlled by USB controller 421, can be usedto send a request to a connected accessory for the functions supportedby the accessory connector and to receive the response from theaccessory. In other embodiments, any other low pin count serialinterface such as RS-232 can be used for this functionality. The secondgroup of pins 422 can also be used for monitoring or managing theperformance of an accessory device. The received accessory connectorfunctions can be passed from the second group of pins 426 to thecontroller 410.

The host controller 410 comprises pin control logic 411. The pin controllogic 411 comprises pin controllers 412-419 and 421 that provide thefunctions supported by the multi-function pins. For example, the USBcontroller 412 controls the second group of pins 422 and provides amicro-USB interface at these pins. No other pin controller connects tofixed-function pins 30-34, as these pins are not configurable.

More than one pin controller can be connected to the multi-functionpins. For example, Audio Left, SPDIF OUT and DP AUX+ (DisplayPortAuxiliary Pin (positive)) controllers 413, 414 and 415 are connected tomulti-function pin 22. Thus, in this example, pin 22 is capable ofsupporting any one of three functions. Pin 22 can deliver left-channelanalog audio output in a first configuration, operate as the output pinin the SPDIF interface in a second configuration and operate as theauxiliary (positive) pin in the DisplayPort interface in a thirdconfiguration. The pin control logic 411 ensures that eachmulti-function pin is controlled by no more than one pin controller atany given time. In some embodiments, a multiplexer (not shown) or otherswitch (e.g., tri-state gate) can be used to connect one of the pincontrollers to a multi-function pin. In other embodiments, one pincontroller connected to a multi-function pin can be enabled and theother pin controllers connected to the multi-function pin can bedisabled. The multiplexer or switch can be a component separate from thepin controller 410, or it can be integrated into the controllercircuitry. The pin control logic 411 can be configured such that pincontrollers that operate concurrently are connected to differentmulti-function pins. For example, Audio Left and Right controllers canbe connected to the different multi-function pins as these controllersoperate concurrently when the stereo analog audio output function isenabled.

Multi-function pins 5 and 13 support multiple functions in a similarmanner. HDMI DDC DAT and PCIEX CLK+ controllers 416 and 417 areconnected to pin 13 and SPDIF IN and MIC IN controllers 418 and 419 areconnected to pin 5. Thus, pin 13 can be configured to operate as the DDCDAT pin of the HDMI interface, or as the CLK+ pin of the PCI Expressinterface. Pin 5 can be configured to operate as the INPUT pin of theSPDIF interface or as a microphone input pin.

The pin controllers 412-419 and 421 can be related to the multi-functionpins by a “many-to-one” relationship. That is, each of themulti-function pins can be configured to support a dedicated set offunctions. In the example shown in FIG. 4, pin 22 can operate as theAudio Left, SPDIF OUT or DP AUX+ pins. The pin control logic 411 cancomprise duplicate pin controllers for a given function to provide formultiple ports of an interface. For example, connector 420 can supporttwo DisplayPort channels if two sets of DisplayPort controllers cancontrol two independent sets of multi-function pins.

To provide additional flexibility, pin controllers can be related tomulti-function pins by a “many-to-many” relationship. In thisarrangement, pin controllers can be configured to control more than onemulti-function pin. For example, pin control logic 411 can be configuredto connect HDMI DDC DAT controller 416 to pin 13 in one configuration,and to another multi-function pin in a second configuration.

The host controller 410 can select the host and accessory connectorfunctions to be enabled. The controller 410 can select the connectionfunctions based on the accessory connector functions received from theaccessory device and the host connector functions accessed from the hostconnector function store 430. The controller 410 can leave one or morehost connector functions or accessory connector functions unselected,or, the controller 410 can select all host and accessory connectorfunctions. The selected connector functions are selected from among thehost connector functions and the accessory connector functions accordingto selection criteria. In some embodiments, the selection criteria canbe that the selected connector functions are supported by both the hostand accessory devices. Thus, the controller 410 can select one or morefunctions that are mutually supported by the host and accessoryconnectors to be enabled. In other embodiments, the connector functionscan be selected according to different or additional criteria, such asconnection function power consumption, function bandwidth, functionspeed, which applications are currently executing or are scheduled forexecution on the host and/or accessory devices, etc. Thus, functionselection can comprise performing matching, comparing and/or otheroperations whose outcomes provide a measure or indication of whether agiven connector function is to be selected for enablement at the hostand accessory connectors. In some embodiments, the selection, ornegotiation, of connector functions to be enabled can be asymmetric.That is, the host device selects which functions are to be enabled. Theaccessory device does not participate in the selection of whichconnection functions are to be enabled. The accessory device responds torequests for information from the host device and enables accessoryconnector functions as instructed by the host device. In otherembodiments, the negotiation can be symmetric. That is, both the hostand accessory participate in selecting which connector functions are tobe enabled. An accessory device can select one or more connectorfunctions to be enabled and can send these functions to the host device.The host controller can then select connector functions to be enabledbased in part on the selected connector functions sent by the accessory.

The host controller 410 can also be configured to dynamicallyreconfigure the host connector 420 depending on the operations beingperformed or scheduled to be performed by the host 400. For example, ifa host 400 is scheduled to synchronize with a personal computeraccessory device, a large amount of data can be scheduled to be sentover the host-accessory connection. If the connector can support aninterface capable of a higher data transfer rate than any of theconnector functions currently enabled, the controller 410 can determinethat the higher data rate interface is to be enabled. For example, thecontroller 410 can determine that a USB 3.0 interface is to be enabledbefore the synchronization operation begins. The synchronizationoperation can then use the newly enabled USB 3.0 interface. In someembodiments, the controller 410 can reconfigure the host connector 420to restore the previous connector configuration after the sync operationis completed. Alternatively, the controller 410 can be configured tokeep the host connector 420 in the new configuration.

The controller 410 can reconfigure the host connector 420 in response toother operations or transactions. For example, the controller 410 canenable a video data interface such as HDMI in response to determiningthat a current operation involves the transfer of video data across ahost-accessory connector, if a video interface is not presently enabled.The controller 410 can determine which connector functions to enable inresponse to operations performed or scheduled to be performed based onalgorithms hard-wired into controller circuitry, controller firmware,software running on the host 400, user settings, or any combinationthereof. For example, the user can request an operation through a GUI.In order to carry out the operation, the host connector can bedynamically reconfigured to most effectively communicate with theaccessory in response to the user input. For instance, if a userindicates that he or she wishes to play a movie stored on the hostmobile device on a connected television, the host device can reconfigurethe mobile device-television connection to enable an interface capableof high data transfer rates, or an interface designed for multimediacommunication.

A controller of an accessory device as described herein can comprise oneor more of the components of the host device controller 410 describedabove. For example, an accessory device controller can comprise pincontrol logic. The pin control logic can be capable of transmitting andreceiving signals to/from the pins of the accessory device connectorusing individual pin controllers. The accessory device pin control logiccan ensure that each multi-function accessory connector pin isoperatively coupled to no more than one pin controller at any giventime. In some embodiments, a multiplexer (not shown) or other switch(e.g., tri-state gate) can be used to connect one of the accessorydevice pin controllers to an accessory connector multi-function pin. Inother embodiments, one accessory device pin controller connected to amulti-function pin can be enabled and the other accessory device pincontrollers connected to the multi-function pin can be disabled to allowthe accessory pin to be controlled by a single pin controller.

FIG. 5 is a flow chart of an exemplary method 500 for reconfiguring ahost connector to enable a high data rate function. At 510, one or morefunctions to be enabled at a host connector and at an accessoryconnector can be selected. At 520, the one or more selected functionscan be enabled at the host connector. At 530, an instruction to enablethe one or more selected functions at the accessory connector can besent to the accessory device. At 540, the host device can determine thatan operation currently being performed or scheduled to be performed andinvolving the transfer of data over the host-accessory connection can becompleted in a shorter amount of time by enabling an additional functionof the host and accessory connectors not currently enabled. At 550, theadditional function can be enabled at the host device connector byreconfiguring the mobile host device connector pins. At 560, aninstruction can be sent to the accessory device to enable the additionalfunction at the accessory device connector by reconfiguring theaccessory device connector pins. At 570, the additional function can beused to transfer the data over the connection established by thereconfigured host and accessory devices. Thus, the host can monitorperformance of enabled connector functions and dynamically reconfigurethe host and accessory connectors in response to the monitoring. Thereconfiguration can comprise adding or replacing a function to the setof enabled functions. Reconfiguration can take place without disruptingother enabled connector functions. For example, transfer of data can bemaintained on some pins while additional functionality is enabled atother pins not being used.

The host controller 410 can be configured to avoid function collision.For example, a globally unique identifier (GUID) can be associated witheach supported functionality having a unique pinout. The host controller410 can be configured to require that mutually supported functions havethe same GUID before enabling the function. Consider an example where ahost supports HDMI on pins 14-20 and PCI-Express on pins 21-24, and anaccessory supports HDMI on pins 18-24. The HDMI functions supported bythe host and the accessory can be associated with different GUIDs. Thehost controller cannot enable the HDMI functions, as they are associatedwith different GUIDs. Thus, the host controller avoids connectingaccessory HDMI pins to host PCI-Express pins. The host controller alsoavoids connecting accessory HDMI pins to incorrect host HDMI pins.

FIG. 6 is a flowchart of an exemplary method reconfiguring a hostconnector in response to a second accessory being connected to a mobilehost device in place of a first accessory. For example, method 600 couldbe executed in response to a user first connecting a mobile phone to astereo receiver to listen to songs stored on the phone, and then, later,disconnecting the stereo receiver and connecting a television to thephone to watch a movie. At 610, the mobile host device can select one ormore first functions to be enabled at a host connector for connecting toan accessory. At 620, the host device can configure the pins of the hostconnection to support the selected functions. At 630, the host devicecan instruct the accessory device to configure the accessory connectorpins to support the selected functions. At 640, detachment of theaccessory from the host device can be automatically detected. Forexample, some pins can be periodically monitored for connectivity, suchas by monitoring the current flow or signal switching. If apredetermined period of inactivity occurs, it can be determined that theaccessory has been disconnected. Another technique for automaticdetection is to simply look for voltage level changes on pins whereinone state indicates an “attached state” and another indicates a“non-attached” state. At 650, attachment of a second accessory to thehost device can be detected. This can be again through monitoring ofcurrent or pin activity. It can be assumed that after a disconnect, anew accessory was connected. At 660, the host device can request thesecond accessory connector functions from the second accessory device.At 670, an indication of one or more functions supported by the secondaccessory connector can be received from the second accessory. At 680,the host device can select one or more second functions to be enabled atthe second accessory connector and the host device connector. At 690,the host device can reconfigure the pins of the host connection tosupport the selected second functions. At 695, the second accessorydevice can be instructed to configure the second accessory connector tosupport the selected second functions. Thus, the host device canautomatically and dynamically reconfigure pins based on replacement of afirst accessory with a second accessory.

The method 600 can further comprise placing the host connector in anunconfigured or a previously configured state in response to detectingthe first accessory device being detached from the host device. The hostcontroller can place the pins into a high-impedance state, enable adefault set of connector functions or enable a set of connector functionassociated with a previous configuration of the host controller.

FIG. 7 is a flow chart of a first embodiment 700 of an exemplary methodfor configuring an accessory connector connected to a host connector. At710, a request can be received from a host device for the functionssupported by the connector of the accessory device. At 720, anindication can be sent from the accessory device to the host device ofone or more functions supported by the accessory device connector. At730, an instruction can be received by the accessory from the hostdevice to enable one or more functions selected by the mobile hostdevice at the connector of the accessory device. At 740, the one or moreselected functions can be enabled at the connector of the accessorydevice. In addition to enabling the selected functions at the specifiedpins as indicated by received instruction from the host device, theaccessory device can set any related hardware or software configurationsto enable the appropriate bus traffic across the enabled pins. In someembodiments, enabling the functions at the accessory device connectorcomprises, for each of the pins to be configured, configuring theaccessory device such that one of a plurality of accessory device pincontrollers controls the pin. For example, if pin 13 of the accessorydevice is capable of being controlled by an HDMI DDC DAT pin controlleror a PCIEX CLK+ pin controller, the accessory can be configured suchthat the HDMI DDC DAT pin controller controls pin 13. For example, theHDMI DDC DAT pin controller can be enabled and the PCIEX CLK+ pincontroller can be disabled, or, if the pin controllers are connected topin 13 by a switch, the switch can be configured to connect the HDMI DDCDAT controller to pin 13.

The accessory device can then notify accessory device applications, orother devices connected to the accessory device that the enabledfunctions are available for use. The accessory device can then beginappropriate communication over the host-accessory connection using theenabled connection functions.

The accessory device connector can be unconfigured or previouslyconfigured prior to enabling the one or more selected functions at theaccessory device connector. The accessory device can be reconfigured byreceiving an instruction to enable additional functions and thenenabling the additional functions at the accessory connector. Anaccessory controller can place the accessory connector in anunconfigured or a previously configured state in response to detectingseparation of the accessory from a host. The accessory controller canplace the pins into a high-impedance state, enable a default set ofconnector functions or enable a set of connector functions associatedwith a previous configuration of the accessory controller.

Table 1 shows an exemplary set of connection configurations for theexemplary 34-pin host connector shown in FIG. 4.

TABLE 1 Active Accessory Display Port 1 lane, Display Display PCI PCIPort, 2 MHL, Passive Port, 4 Express, 2 Express, lanes, USB Pin PinAccessory HDMI lanes lanes 1 lane USB 3.0 3.0 type 1 FM_ANT (FM antenna)F 2 AUDIO_L (left channel audio) M 3 AGND (analog ground) F 4 AUDIO_R(right channel audio) M 5 MIC_IN MIC_IN/SPDIF_IN M 6 PHONE_DET (phonedetection) F 7 PASS_ACC_DET SPDIF_OUT M 8 NC HDMI_HPD NC NC NC NC CTRL F9 POWER_REQ F 10 NC HOST_DM F 11 GND F 12 NC HOST_DP F 13 NCHDMI_DDC_DAT DP_TXD3n PCIEX_RCKn PCIEX_RCKn USB_RXDn USB_RXDn M 14 GND F15 NC HDMI_DDC_CLK DP_TXD3p PCIEX_RCKp PCIEX_RCKp USB_RXDp USB_RXDp M 16NC HDMI_TXCN DP_TXD2n PCIEX_TXD1n PCIEX_TXD1n USB_TXDn USB_TXDn M 17 GNDF 18 NC HDMI_TXCP DP_TXD2p PCIEX_TXD1p PCIEX_TXD1p USB_TXDp USB_TXDp M19 NC HDMI_TXD0N DP_TXD1n PCIEX_RXD1n PCIEX_RXD1n DP_TXD1n NC M 20 GND F21 NC HDMI_TXD0P DP_TXD1p PCIEX_RXD1p PCIEX_RXD1p DP_TXD1p NC M 22 NCHDMI_TXD1N DP_TXD0n PCIEX_TXD2n DP_TXD0n DP_TXD0n TXCn M 23 GND F 24 NCHDMI_TXD1P DP_TXD0p PCIEX_TXD2p DP_TXD0p DP_TXD0p TXCp M 25 NCHDMI_TXD2N DP_AUXn PCIEX_RXD2n DP_AUXn DP_AUXn TXDn M 26 GND F 27 NCHDMI_TXD2P DP_AUXp PCIEX_RXD2p DP_AUXp DP_AUXp TXDp M 28 Reserved F 29GND F 30 +5V F 31 SYNC_DM F 32 SYNC_DP F 33 OTG_ID F 34 GND F

The letters F and M in the Pin Type column mean “fixed-function” and“multi-function,” respectively, and the letters “NC” mean, “NotConnected.” The individual pins (HDMI_TXD1P, PCIEX_TXD2p, etc.) of thevarious communication interfaces (USB 3.0, MHL, DisplayPort,PCI-Express, and HDMI) listed in Table 1 are known to those of skill inthe art.

As indicated in Table 1, high-speed signal pairs in various interfacessuch as the PCIEX_TXDp/n signal pair in PCI-Express and the DP_TXDn/psignal pair in DisplayPort can be routed on the same pins, for example,pins 13 and 15, as these pins are based on similar low-level electricalinterface (AC-coupled differential signaling). This allows thecorresponding pin controllers to use common interface circuitry andreduces design complexity, and controller area and cost. High-speedinterfaces, such as HDMI, can be made compatible with AC-coupleddifferential interfaces with the use of inexpensive interface converterchips.

An alternative Table 1 can be as follows:

Active accessory Display port 1 Display PCI lane, PCI port 2 DisplayPort, express, express 1 lanes, MHL, Connector Pin HDMI 4 lanes 2 laneslane USB 3.0 USB 3.0 Pin type Accessory 1 FM_ANT fixed 2 ACC_POWERmulti- function 3 AGND gnd 4 AUDIO_L/SPDIF_OUT multi- function 5 MIC_INmulti- function 6 AUDIO_R/SPDIF_IN fixed 7 ACC_UART_TX fixed 8ACC_UART_RX fixed 9 HDMI_HPD n.c. n.c. n.c. USB3_VBUS USB3_VBUS multi-function 10 PHONE_DET multi- function 11 GND gnd 12 HDMI_UTIL n.c. n.c.n.c. USB3_DP USB3_DP multi- function 13 HDMI_DDC_DAT DP_TXD3n PCIEX_RCKnPCIEX_RCKn USB3_RXDp USB3_RXDp multi- function 14 HDMI_CEC n.c. n.c.n.c. USB3_DM USB3_DM gnd 15 HDMI_DDC_CLK DP_TXD3p PCIEX_RCKp PCIEX_RCKpUSB3_RXDn USB3_RXDn multi- function 16 GND multi- function 17 GND gnd 18HDMI_TXD2P DP_TXD2n PCIEX_TXD1n PCIEX_TXD1n USB3_TXDp USB3_TXDp multi-function 19 HDMI_TXD1P DP_TXD1n PCIEX_RXD1n PCIEX_RXD1n DP_TXD1n USB3_IDmulti- function 20 HDMI_TXD2N DP_TXD2p PCIEX_TXD1p PCIEX_TXD1p USB3_TXDnUSB3_TXDn gnd 21 HDMI_TXD1N DP_TXD1p PCIEX_RXD1p PCIEX_RXD1p DP_TXD1pMHL_CTRL multi- function 22 GND multi- function 23 GND gnd 24 HDMI_TXD0PDP_TXD0n PCIEX_TXD2n DP_TXD0n DP_TXD0n MHL_TXCn multi- function 25HDMI_TXCP DP_AUXn PCIEX_RXD2n DP_AUXn DP_AUXn MHL_TXDn multi- function26 HDMI_TXD0N DP_TXD0p PCIEX_TXD2p DP_TXD0p DP_TXD0p MHL_TXCp gnd 27HDMI_TXCN DP_AUXp PCIEX_RXD2p DP_AUXp DP_AUXp MHL_TXDp multi- function28 GND power 29 GND gnd uUSB 28 USB_VBUS power 29 USB_DM fixed 30 USB_DPfixed 31 USB_OTG_ID fixed 32 USB_GND gnd

In the alternative Table 1, the HOST_DP and HOST_DM are replaced byACC_UART_TX and ACC_UART_RX. This means that the primary accessorycommunication path, which we use to negotiate features, authenticate,etc., can be changed to a simpler serial communication. The USB port(USB_DP and USB_DM) can also be used to do USB-based accessorycommunication, if the USB port is changed to host mode on the phone andthe accessory supports it.

FIGS. 8( a)-8(c) show top, end and bottom views of an exemplary physicalimplementation of the host connector 420 of FIG. 4. In this example, thehost connector is a single physical connector 800 comprising twophysically separate sets of pins 810 and 820. The first group of pins810 comprises five fixed-function pins and can be used for discoveringthe accessory connector features. The first group of pins 810 cancomprise a USB connection as shown, or any other low pin count serialinterface. The second group of pins 820 comprises a combination of 29fixed-function and multi-function pins. The connector 800 can beintegrated into a mobile host device and arranged, for example, at thebottom of the device to allow for a convenient connection to a dockingstation. The connector 800 can be connected to any wire, cable, dockingstation, accessory device, etc. having a connector capable of matingwith the connector 800.

FIG. 9 shows an exemplary host device 900 connected to multipleaccessories 910, 920 and 930 by a docking station device 950. In thisconfiguration, the docking station 950 operates as the accessory deviceand can have any of the components and functionalities of accessorydevices described herein. The docking station 950 can operate as aphysical adapter between accessories 910, 920, 930 and the connector ofthe host 900. Thus, connections 940, 944 and 948 can be cables thatconform to existing physical connector standards (mini- or micro-USB orType A, B, C or D HDMI connectors).

FIG. 10 shows a block diagram of an exemplary docking station accessorydevice 1050 capable of connecting to the host connector of FIG. 4. Theaccessory 1050 comprises a controller 1060, a connector 1070 and anaccessory store 1080. The connector 1070 comprises a first group ofmulti-function pins 1078 and a second group of fixed-function pins 1074.The accessory 1050 also includes a set of physical connectors 1089-1095that conform to physical connector standards of various communicationinterfaces. For example, the audio left/right connector 1090 can be aTRS (tip-ring-sleeve) connector and USB connector 1092 can be amicro-USB connector. The accessory 1050 can also comprise an MHLconnector 1089, an SPDIF connector 1091, a PCI-Express connector 1093,an HDMI connector 1094 and a DisplayPort connector 1095. Thus, a dockingstation accessory 1050 can allow multiple accessories to connect to ahost connector without requiring a physical redesign of the accessoryconnectors. The multiple accessories can be connected to the accessory1050 by the connectors 1089-1095 either one at a time or simultaneously.The accessory 1050 can be viewed as a switch, routing data from theaccessory connector 1070 to one or more of the connectors 1089-1095,depending on the enabled functions of the accessory connector 1070.

FIGS. 11-14 show schematic drawings of exemplary accessories connectedto the 39-pin host connector of FIG. 4. FIG. 11 shows a simple stereocable with a built-in FM antenna (pin 1) as an accessory. FIG. 12 showsa passive dock accessory device with stereo analog audio output (pins 2and 4). The accessory in FIG. 12 can be synchronized with the host viathe SYNC_DM and SYNC_DP pins and can be powered by the host via pin 34.FIG. 13 shows an active dock accessory with HDMI and optical SPDIFoutput capabilities. FIG. 14 shows an FM transmitter accessory poweredby the host via pin 34.

In any of the embodiments described herein, the host and accessorydevices can be components of a single, larger electronic device. Forexample, the host and accessory devices can be integrated circuitswithin an electronic device. Thus, in these embodiments, the describedmethods can be used to dynamically configure the pins of host andaccessory connectors connected by a bus internal to the single, largerelectronic device.

In some embodiments, the accessory device can take a more active role indetermining which connection functions are enabled, in addition tosending a list of accessory device connector functions to the hostdevice. For example, the accessory device can send accessory deviceinformation to the host device that includes information in addition tothe functions supported by the accessory connector. The accessory deviceinformation can include information regarding the power consumption ofthe accessory device. Accessory device power consumption information caninclude the amount of power consumed by each function supported by theaccessory connector or power consumption information of the accessorydevice as a whole. Current, anticipated and/or historic powerconsumption data can be supplied. The power consumption data can be inthe form of average, peak, or root-mean-square power consumed.

The accessory device information can also include power configurationinformation such as whether the accessory device is running on batterypower or is powered through an external connection. The powerconfiguration information can include the type of external powerconnection, such as whether the accessory device is powered by an ACadapter or by a connection to a docking station or a personal computerthrough, for example, a USB connection. The power configurationinformation can include the maximum current that can be drawn by theaccessory device through the external connection. In addition, theaccessory device information can include the current charge level of theaccessory device battery and the anticipated remaining operation time ofthe accessory device given current operating conditions. Further, theaccessory device information can include a request by the accessorydevice to be powered by the host device.

The accessory device information can also include applicationinformation such as what applications the accessory device is currentlyexecuting, what applications are scheduled to be executed on theaccessory device, and what applications are stored at or accessible tothe accessory device for execution on the accessory device. Theaccessory device information can include various other types ofinformation such as the clock speeds of the accessory device and thethroughput capabilities of each supported accessory connection function.The host device can use any of this accessory device information indetermining which connector functions to enable. For example, the hostdevice can take into account accessory device power constraints due tothe accessory device battery level, the applications currently runningon the accessory device, or the maximum amount of power available to theaccessory device depending on its power connection. Thus, an accessorydevice running one or more applications that consume greater amounts ofpower can limit which functions are to be enabled in a host-accessoryconnection. In some embodiments, the accessory device can implementpolicies to ensure that a host-accessory connection can be configured tosupport one or more selected accessory connections. For example, if thecurrent operating conditions of the accessory leave too little accessorydevice power to power one or more accessory connection functions, theaccessory device can take actions to make power available. For example,the accessory device can reduce the operating frequency of one or moreclocks of the accessory device or stop the execution of applicationsrunning on the accessory device. Accessory device information can alsoinclude processing information. For example, the accessory deviceinformation can include processing capacities or limitations of theaccessory device.

In some embodiments, the accessory device can select a subset of theaccessory device connector functions for sending to the host device,based on the accessory device information. For example, if the accessorydevice is running on battery power, the accessory device can selectfunctions for sending to the host device that consume less powerrelative to other supported connection functions. In other embodiments,the accessory device can exclude connection functions that would exceedthe accessory power budget, if enabled. In some embodiments, theaccessory device can place conditions on the functions sent to hostdevice. For example, if the power consumption of an accessory connectorfunction fits within accessory device power constraints if the functionis operated at or below a specific frequency, the accessory device caninclude this frequency in the accessory device information sent to thehost device.

The accessory device can receive host device information from the hostdevice as well. The accessory device can use the received host deviceinformation when selecting which accessory connection functions are tobe sent to the host device. For example, the host device information caninclude a request by the host device to be powered by the accessorydevice through the host-accessory connection and can include the amountof power requested of the accessory device. The accessory device caneither accept or deny the host device request for power, and, ifaccepted, can additionally select connection functions for sending tothe host device, that, if enabled, do not exceed the accessory devicepower constraints if the accessory device provides power to the hostdevice. In other embodiments, the host device information can includethe amount of power that the host device can supply to the accessorydevice.

Thus, bus arbitration, the selection of which functions are to besupported by a host-accessory connection, can include the exchange ofmessages between the host and accessory devices. As described above, thehost device can send a request to the accessory device for accessorydevice information. The host device can send host device information inaddition to this request, such as a request for power from the accessorydevice. The accessory device information sent to the host device caninclude an indication of one or more functions that can be supported bythe accessory device. All, or a subset of all of the functions supportedby the accessory device can be included in this indication. Theaccessory device information can include additional accessory deviceinformation such as power consumption information, power configurationinformation, application information, accessory device capabilities andthe like. The accessory device can select which connection functions areto be sent to the host device based on the accessory device informationand/or the received host device information. The host device can selectone or more functions to be enabled at the host and accessory devices,or make other decisions, based on the received accessory deviceinformation. For example, if the host device has requested to be poweredby the accessory device, and the accessory device information indicatesthat the accessory device is running off a battery that is neardepletion, the host device can cancel its request. In some embodiments,the host device can base this selection on additional information aboutthe host device similar to the accessory device information describedabove (e.g., host device power consumption information, powerconfiguration information, host device application information, etc.).Accordingly, a host-accessory connection can be configured depending onthe current operating conditions of the host and accessory devices. Asdiscussed in greater detail below, the exchange of information betweenhost and accessory devices can occur upon connection of an accessorydevice to a host device, at a later point in time such as prior to a newconnection function being enabled, or at both times.

FIG. 15 is a flowchart of a second exemplary method of configuring amobile host device connector for connecting to an accessory deviceconnector. The method 1500 can be executed by, for example, a hostmobile phone device connecting to an accessory media player. At 1510,accessory device information, such as that the media player supportsHDMI and PCI-Express interfaces, can be received at the host device. Theaccessory device can be releasably attached to the host device. At 1520,the host device can select one or more functions to be enabled forconnecting the host device to the accessory device. This selection canbe based in part on the received accessory device information. Forexample, the mobile phone can select HDMI to be enabled at the hostconnector. At 1530, one or more pins of the mobile host device connectorcan be configured. The configuring can comprise enabling the one or morefunctions at the mobile host device connector. For example, the hostmobile phone can enable HDMI at the mobile phone connector. In someembodiments, enabling one or more functions at the host device connectorcomprises, for respective of the pins to be configured, configuring thehost device such that one of a plurality of host device pin controllerscontrols the respective pin. For example, if pin 13 of the host mobilephone is capable of being controlled by an HDMI DDC DAT pin controlleror a PCIEX CLK+ pin controller, the mobile phone can be configured suchthat the HDMI DDC DAT pin controller controls pin 13. For example, theHDMI DDC DAT pin controller can be enabled and the PCIEX CLK+ pincontroller can be disabled, or, if the pin controllers are connected topin 13 by a switch, the switch can be configured to connect the HDMI DDCDAT controller to pin 13. At 1540, the accessory device can beinstructed to configure one or more pins of the accessory deviceconnector to support the one or more selected functions. In the example,the mobile host phone can instruct the accessory device to configure theaccessory device connector to support HDMI.

FIG. 16 is a flowchart of a second embodiment 1600 of exemplary methodof configuring an accessory connector connected to a host connector. Themethod 1600 can be executed by, for example, an accessory laptopcomputer releasably connected to a host mobile phone device. At 1610,accessory device information, such as the personal computer supportsHDMI, PCI-Express and SATA interfaces, can be sent to the host device.At 1620, an instruction from the host device to configure one or morepins of the accessory device connector to support one or more functionsselected by the host device for connecting the accessory device to thehost device can be received. For example, the laptop receives aninstruction from the mobile phone to configure a connector to supportPCI-Express and SATA interfaces. At 1630, one or more pins of theaccessory device connector can be configured. The configuring cancomprise enabling the one or more functions at the accessory deviceconnector. For example, the laptop computer can enable the PCI-Expressand SATA interfaces at the personal computer connector. In someembodiments, enabling the functions at the accessory device connectorcomprises, for respective of the pins to be configured, configuring theaccessory device such that one of a plurality of accessory device pincontrollers controls the respective pin. For example, if pin 13 of theaccessory device is capable of being controlled by an HDMI DDC DAT pincontroller or a PCIEX CLK+ pin controller, the accessory can beconfigured such that the HDMI DDC DAT pin controller controls pin 13.For example, the HDMI DDC DAT pin controller can be enabled and thePCIEX CLK+ pin controller can be disabled, or, if the pin controllersare connected to pin 13 by a switch, the switch can be configured toconnect the HDMI DDC DAT controller to pin 13.

In any of the embodiments described herein, configuration of thehost-accessory connection can be based on, and operation of theaccessory device can conform to, various licensing policies. Forexample, an accessory device can require that a connected host devicehave the necessary license before allowing an accessory connectorfunction to be enabled or an accessory device resource to be accessed.In one embodiment, a high-end printer accessory device can require ahost device to have a license before allowing the host device to printdocuments to the printer. In any of the embodiments described herein, apay-for-use licensing model can be employed in which a user of a hostdevice purchases a license in order to gain access to the accessorydevice functions or resources using the host device. In someembodiments, a tiered licensing policy can be implemented in which thepurchase of more expensive licenses provide greater access to accessorydevice resources. For example, a basic printer license can allow a hostdevice to print a specified number of pages to an accessory deviceprinter, an enhanced licensed can allow the host device to gainunlimited access to printer resources for a specified length period oftime, and a premium license can grant permanent, unlimited access to theprinter. The licensing schemes employed by the described host andaccessory devices need not be based on pay-for-use models. Licensingapproaches in which licenses can be obtained without payment can beemployed as well.

In other embodiments, a license can provide a host device with access tomedia content stored at or accessible by an accessory device. Again, atiered licensing approach can be used in which a host device can gaingreater access to media content through purchase of a more expensivelicense. For example, a premium license can provide a host device userwith unlimited access to media accessible to the accessory device.

If desired, an accessory can be bound to certain one or more hosts via alicense. The license can be validated by the accessory. Such anarrangement can prevent use of a stolen accessory and discourage theft.

Numerous other licensing schemes and policies can be implemented forvarious types of host and accessory devices. Licenses can allow a hostdevice to gain access to various types of accessory devices, such asmedia players, personal computers, workstations or medical equipment, toenable various functions of accessory devices such bus protocols havinggreater speed or throughout capabilities, playback or transfer of highdefinition video signals, Internet telephony, gaming, texting, videochat, GPS, a more secure host-accessory connection, etc., or ancillaryservices such as accessory device customer support.

A host device license can take various forms. For example, a user of ahost device connected to an accessory can purchase or upgrade a licensewhile the host device is connected to the accessory device.Alternatively, a host device license can be purchased through connectionof the host device to an online service associated with an accessorydevice through a connection to a cloud, described below. The purchase ofthe license can result in the generation of a token for storage at thehost device. The token can indicate the terms of a license such as whichaccessory device functions and/or resources the license provides accessto or how much of an accessory resource the host device can consume(e.g., number of pages that can be printed, gigabytes of data that canbe transferred, number of songs that can be downloaded). A host devicelicense token allows a host device to gain access to accessory deviceresources and functions when the host device is connected to theaccessory device. Host device licensing information, including tokeninformation, can be included as part of the host device informationdescribed earlier that is sent to the accessory device.

In other embodiments, an accessory device or resource accessible by theaccessory device keeps track of host device licenses. For example, theaccessory device can maintain a licensing database keyed by host deviceidentifier. Upon connection of a host device to an accessory, the hostdevice can send its host device identifier to the accessory device, andthe accessory can determine whether the host device is licensed to usecertain accessory device features or resources. Various other methodsfor keeping track of licenses that are known to persons of ordinaryskill in the art can be used as well.

The accessory and/or host devices can determine or receive an indicationwhen a license has expired or has been revoked. A license can expirebecause, for example, a specified number of pages have been printed, ora subscription period has ended. A license can be revoked because, forexample, a cloned accessory or host device may no longer be considered agenuine or authentic device. If the license allowed enablement of aconnector function, upon expiration of the license, the host device canreconfigure the host connector pins to disable the previously licensedfunction and instruct the accessory device to disable the same functionat the accessory device connector. Alternatively, the accessory devicecan disable connector functions associated with an expired licensewithout being instructed to do so by a host device.

The accessory and/or host devices can also determine or receive anindication when a new host device license is available, an expiredlicense has been renewed or an existing license has been upgraded. Forexample, in response to an accessory device determining that an expiredhost device license has been renewed, the accessory device can send anindication to the host device that a connector function associated withthe renewed license is available. The host device can enable thisconnector function at the host connector and instruct the accessorydevice to enable the same function at the accessory device connector. Insome embodiments, the accessory device can enable accessory deviceconnector functions associated with a renewed license without beinginstructed to do so by the host device.

In other embodiments, the host device can determine that a connectionfunction has been licensed by detecting activity corresponding to thelicensed function of the host-accessory connector. In response, the hostdevice can configure the host connector to enable the licensed function.Thus, the host device can detect and configure a host connector tosupport a licensed function without having to receive an indication fromthe accessory device that the licensed connector function is availablefor use.

FIG. 17 is a flowchart of additional operations 1700 that can beperformed as part of the flowchart shown in FIG. 15 for operating ahost-accessory connection in conformance with host device licenses anddisabling connector functions in response to expiration of a license.Continuing with the example described above with respect to FIG. 15, theadditional operations 1700 can be performed by a host mobile phonelicensed to access media from an accessory media player. At 1750, theone or more functions enabled at the host-accessory connection can beoperated in conformance with one or more host device licenses. Forexample, an HDMI bus can be operated to transfer data at a data rate nogreater than that allowed by the host device license. At 1760, theexpiration of at least one of the one or more host device licenses canbe determined or an indication thereof can be received. For example, thehost mobile phone can determine that the license has expired due to theexpiration of the licensing period or an allowed number of gigabyteshave been transferred. At 1770, at least one of the enabled one or morefunctions at the host device connector can be disabled in response tothe determining or receiving an indication that at least one of the oneor more host device licenses has expired. For example, the host devicecan disable the HDMI interface at the connector to the accessory mediaplayer connector in response to determining that the license allowingaccess to the media player has expired.

In addition to supporting licensing policies, host and accessory devicescan support device authentication. When host-accessory device pair areconnected, single authentication (the host device authenticates theaccessory device or the accessory device authenticates the host device)or mutual authentication (the host and accessory devices authenticateeach other) can be performed. Authentication can allow only genuine orapproved accessory devices to be connected to or utilized by a hostdevice. For example, a manufacturer of host and accessory devices canemploy an authentication scheme such that accessory devices produced bythe manufacturer can only connect to authenticated devices.Authenticated devices include other host or accessory devices producedby the manufacturer, a licensee of the manufacturer or any otherorganization that has obtained permission from the manufacturer toproduce such devices. Such an authentication scheme can prevent themanufacturers' accessory devices from being used or accessed by devicesmade by manufacturers that have not obtained the permission tomanufacture such devices (e.g., clones, knock-offs or copies). In oneembodiment of an authentication scheme, an accessory speaker system cancheck whether a docked host mobile phone is an authenticated devicebefore allowing songs stored on the mobile phone to be played on thespeaker system.

In some embodiments, single or mutual authentication can be performedvia TLS (transport layer security) handshake validation, as is known inthe art. Transport layer security authentication can be unilateral orbilateral. In some embodiments, an accessory device can authenticate thehost device based on host device information received by the accessorydevice. The host device information used for authentication cancomprise, for example, a host device digital certificate, such as asigned certificate. The host device can authenticate the accessorydevice in a similar fashion. The host device can authenticate theaccessory device based on accessory device information received from theaccessory device. The host device can authenticate the accessory devicebased in part on an accessory device digital certificate included in theaccessory device information. The host and accessory devices can eachhave access to a resource that can determine whether a receivedcertificate is associated with an approved device. This resource can bea certificate database stored locally at the host or accessory device oraccessible remotely via a network connection. The resource can be analgorithm that takes the received certificate as input and produces anindication of whether the certificate is associated with an approved orgenuine device. Other authentication techniques can be used as well.

FIG. 18 is a flowchart of an exemplary method of configuring a mobilehost device connector for connecting an accessory device connectorincluding authenticating the accessory device. The method 1800 can beexecuted by, for example, a host mobile phone device connecting to anaccessory media player. At 1810, accessory device information, such asthat the media player supports HDMI and PCI-Express interfaces, can bereceived at the host device. At 1820, the accessory device can beauthenticated. At 1830, the host device can select one or more functionsto be enabled for connecting the host device to the accessory device.This selection can be based in part on the received accessory deviceinformation and whether or not the accessory device has beenauthenticated. For example, the mobile phone can select HDMI to beenabled at the host connector, and only if the accessory device is anauthenticated device. At 1840, one or more pins of the mobile hostdevice connector can be configured. The configuring comprises enablingthe one or more functions at the mobile host device connector. Forexample, the host mobile phone can enable HDMI at the mobile phoneconnector. At 1850, the accessory device can be instructed to configureone or more pins of the accessory device connector to support the one ormore selected functions. In the example, the mobile host phone caninstruct the accessory device to configure the accessory deviceconnector to support HDMI.

In any of the embodiments described herein, the host-accessoryconnection can be encrypted to enable a secure connection. The hostdevice can be a first security endpoint with a second security endpointcomprising an accessory device or a docking station (i.e., dockingstation 950 in FIG. 9) capable of connecting to one or more accessorydevices. The encryption can be provided using transport layer security(TLS) or other cryptographic protocols known in the art. Ahost-accessory device or host-docking station pair can support thesecure exchange of cryptographic keys for encryption and decryption ofany of the buses enabled in a connection.

In any of the embodiments described herein, the pin controllers (i.e.,controllers 412-419 and 421 in FIG. 4) that support various pinfunctions of host or accessory device connectors can be implemented inhardware (e.g., logic circuits as part of a larger integrated circuit),software (e.g., firmware) or a combination of the two. In embodimentswhere pin controller logic is implemented via firmware, the pincontroller logic can be modified by upgrading the firmware of the hostor accessory devices. Thus, the sets of host and accessory connectorfunctions are extensible and can be upgraded to implement new busprotocols or connector functions, or to upgrade existing ones.

In any of the embodiments described herein, host and accessory devicescan be configured to handle various scenarios. These scenarios includeInsert Accessory, Remove Accessory, Reallocation of Device Resources andPower Management scenarios.

Insert Accessory Scenario

In the Insert Accessory scenario, a host device can initially be in apowered or idle state. An idle state reflects that the host device statemachine with respect to an accessory device is in a default state. Uponinsertion or connection of an accessory device to a host device, acontrol channel between the host and accessory devices can be the onlyactive channel. This control channel can be a USB port (e.g., a mini- ormicro-USB port) comprising a set of fixed-function pins (e.g., pins 422in FIG. 4) or any other combination of host connector pins. Theinsertion of an accessory device can cause the host device to wake up.That is, the host device can transition from a low-power state such as asleep or hibernation state, to a powered state. One technique forimplementing such a wake-up scenario is to monitor certain pins forvoltage level transitions and upon such a detection, automaticallytransition the host to an active state.

After insertion, the host device can authenticate the accessory device,for example, by performing a TLS handshake (i.e., by the host devicesending a challenge to the accessory device and receiving a properresponse). If the accessory device cannot be authenticated, the hostdevice can execute the Accessory Removal scenario described in greaterdetail below. Alternatively, the host device can allow limitedinteraction with an unauthenticated accessory device. For example, thehost device can query the accessory to see if the accessory devicesupports specific functions that the host device can allow to beenabled, even if the accessory device fails authentication. If theaccessory device informs the host that any such functions are supportedby the accessory, the host device can enable these functions at the hostdevice connector and instruct the accessory device to enable thesefunctions at the accessory device connector as well. In otherembodiments of the Insert Accessory scenario, the host device can electto not trust the unauthenticated accessory. That is, the host device canignore any activity on the host-accessory connection initiated by theunauthenticated accessory device.

After the accessory device has been authenticated, the host device cansend an EnumerateFeature request to the accessory device. This requestcan contain the version of the host device software protocol embodyingone or more of the methods described herein and can include both themajor and minor versions of the protocol. If the accessory device doesnot support the version of the software protocol indicated in theEnumerateFeature request, the accessory can return an error to the hostdevice. If the host software protocol version is supported, theaccessory supplies accessory device information to the host device. Asdescribed above, accessory device information can comprise accessorypower consumption information, power configuration information,application information, processing capacity information, accessorydevice connector functions, and the like. The accessory deviceinformation can indicate which functions are supported by the accessoryconnector (e.g., USB 2.0, USB 3.0, PCI-Express, HDMI), which accessoryconnector pins support each function and which functions can be operatedconcurrently. The accessory device information can also include theaccessory device software protocol version, including both major andminor versions. The minor version can be used to identify accessorydevices and functions that are backwards compatible with the host deviceif entire host and accessory device protocol versions are not identical.The accessory device information can further include the authenticationversion, an accessory device unique identifier (e.g., the accessorydevice globally unique identifier), and accessory device class andsub-class.

In some embodiments of the Insert Accessory scenario, the accessorydevice can provide some accessory device information in response to the“enumerate features” request, with additional accessory deviceinformation supplied at a later time. For example, the accessory devicecan send information about a supported function to the host just priorto the function being enabled by the accessory device.

After receiving the accessory device's response to the EnumerateFeaturerequest, the host device can determine which connector functions toenable and which pins are to be associated with those functions. Thehost device can send an instruction to the accessory which connectorfunctions to enable and which functions are to be enabled by which pins.In response, the accessory device can enable the pin and functioncombination as instructed by the host device. The accessory device canalso configure any related hardware or software needed to enable trafficacross the host-accessory connector. The accessory device can then sendan acknowledgment to the host device that the requested functions havebeen enabled at the requested pins, and that the accessory device isready to receive communication at the enabled pins. The host device canthen enable the selected functions at the selected pins of the hostdevice connector and load the appropriate software drivers for thespecified functions. Applications and other resources executing on thehost and accessory devices can then be notified that the enabledconnector functions are available for use.

Remove Accessory Scenario

In a Remove Accessory scenario, an accessory device can be removed froma host device. A Remove Accessory scenario can be initiated by software,hardware or by surprise. In a software initiated removal, the hostdevice operating system, or other software executing on the host device,can initiate the removal process. The host device operating system candecide to initiate the removal process on its own or in response toinput received from a user of the host device. In a hardware initiatedremoval, the accessory can have a button or other input, that, whenpressed, generates a removal request that can be sent to the hostdevice. In a removal initiated by surprise, the physical connectionbetween host and accessory devices can be broken without notice to thehost device. For example, a user can simply remove a host device from adocking station or disconnect cable connecting the host device to anaccessory.

After initiation of the removal process, the Remove Accessory scenariocan perform the following. The host device can issue appropriatenotifications to host device applications communicating with theaccessory device. Once these host device applications have completedexecuting, the host can stop the software device drivers andcorresponding bus protocol stacks. If the removal was initiated bysurprise, the Remove Accessory scenario can be completed at this point.

If the removal is software or hardware initiated, the host deviceinforms the accessory device that the host accessory device can beremoved. The accessory device can then perform the necessary hardwareand software actions to stop the software protocol stacks and hardwarebuses corresponding to the enabled accessory connector functions. Theaccessory can then inform the host device that the accessory has powereddown the respective buses and that the host device can notify a user ofthe host device that it is safe to disconnect the host device from theaccessory device. In response, the host device can send a PowerOffinstruction to the accessory device and notify the user that it is safeto disconnect the host device from the accessory.

Resource Reallocation Scenario

In a Resource Reallocation scenario, host and accessory connectors canbe reconfigured to enable different connector functions or to mapenabled functions to different pins. Resource reallocation can beperformed several different ways. If a full Remove Accessory or InsertAccessory scenario is initiated, the host device can choose a differentpin mapping or set of connector functions to be enabled at the hostconnector. In a partial remove sequence, the host device can stop thespecified connector functions and no connector reconfiguration isperformed. In this situation, the host device issues the appropriatesoftware notifications to host device applications communicating withthe accessory device. Once these host device applications have completedexecuting, the host can stop the software device drivers andcorresponding bus protocol stacks. The host operating system can theninform the accessory device indicating which connector functions and/orpins are to be disabled. The accessory device can then perform thenecessary hardware and software actions to stop the software protocolstacks and hardware buses on the appropriate pins, and can send a returnmessage to the host device indicating that the indicated connectionfunctions and pins have been powered down.

Once the indicated connector functions have been disabled at the hostand accessory, a different set of connector functions can be enabled.The host device can inform the accessory device which accessoryconnection functions to enable, and which accessory pins are to enablethese functions. The accessory device can then enable the specifiedpin/connector function combinations and configure any related hardwareor software needed to enable signal traffic across the enabled pins. Theaccessory device can communicate to the host that the specifiedconnector functions and pins are enabled and that the accessory deviceis ready to receive appropriate signaling over the enabled buses andpins. The host device can then enable the same connector functions atcorresponding pins on the host device connector, and load theappropriate software drivers. The host device can then begincommunication on the enabled pins using the enabled connector functions.Host device application can then be notified that the enabled connectorfunctions are available for use.

Power Management Scenario

The Power Management Scenario applies to the control channel of thehost-accessory connection. Connector functions (e.g., USB, PCI-Express)operating on other channels can use the power management conventions asdescribed in their respective specifications. Power Management scenarioscan be hardware or software initiated.

In a hardware initiated Power Management scenario, the accessory devicecan have a button or other inputs that, when pressed or activated,generate a PowerActive, PowerSuspend or PowerOff request to the hostdevice over the control channel. A PowerActive request wakes the hostdevice if the host is not already in an active state. Upon receiving aPowerActive request, the host device resumes normal activities if thehost was previously in an inactive state such as a sleep, hibernation,standby or off state. A PowerSuspend request places the host device in asuspended power state, such as sleep, hibernation or standby. A PowerOffrequest causes the host device to power off.

In a software initiated Power Management scenario, the host deviceoperating system or other software initiates the power state transition.The host device software can decide to transition to another power stateon its own, or based on user input. The host device can determine thatthere has been no activity on the host-accessory connection for apre-determined or user-specified period, and decide to place the hostdevice is a suspended state (sleep, hibernation, standby) or to poweroff the host device. The host device can send a PowerActive,PowerSuspend or PowerOff instruction to the accessory device.

A PowerActive request can cause the accessory device to transition froma suspended (standby, sleep or hibernation state) state or off state toan active power state. The previous configuration of the host-accessoryconnector can be re-enabled or restored. In some embodiments, the hostdevice can re-authenticate and/or re-enumerate the accessory device, asthe host device may no longer be connected to the same accessory deviceas it was prior to entering the suspended or off state, or the hostdevice may no longer be connected to any accessory device at all. If theaccessory lost power while in the suspended or off state, it can returna fail message to the host device in response to the PowerActiverequest. In response to receiving a PowerSuspend request, the accessorydevice can power down, and ensure that the present connectorconfiguration (e.g., enabled accessory connector functions, which pinsare mapped to the enabled connector functions) is not lost. Thisconfiguration can be stored at the accessory device or at a resourceaccessible to the accessory device. The accessory device can power downto a low-power state, but continue operation at a power level sufficientto enable a quick resumption of full operation. A PowerOff request cancause the accessory device to cut off power to the accessory.

Generally, the scenarios described above use the control channel of thehost-accessory connection, although other channels or connectorfunctions can be used to execute the above scenarios. In such a case,the above scenarios, including additional scenarios such as deviceenumeration, start device and stop device scenarios can be handled bythe specific mechanisms available to each controller function. Forexample, in an embodiment where a host-accessory pair are communicatingover a USB channel other than the control channel, that USB channel canhandle the enumerate device and other scenarios.

The dynamically configurable host and accessory connectors describedherein provide a low pin count connector able to support a wide varietyof communication interfaces at the system level. For a given set ofconnector capabilities, the pin count of a host connector comprisingmulti-function pins can likely be less than that of a connectorcomprised entirely of dedicated, fixed-function pins. The connectors asdescribed herein can accommodate the evolving communication capabilitiesof host and accessory devices. For example, a host connector can bereconfigured as new accessories implement the various interfacessupported by the connector. In addition, the host connector can beintegrated into host and accessory devices capable of supporting newfunctions added to existing protocols or entirely new protocols.Although new controller designs can be needed to support these newfunctions, the physical design of the connector can remain the same, aslong as there are a sufficient number of pins to support the new andupdated interfaces. Thus, the connector as described herein is flexibleand expandable, is forward and backward compatible to allow olderdevices to communicate with newer ones, and is less likely to requirephysical modification as communication interfaces continue to evolve.

FIG. 19 is a system diagram depicting an exemplary mobile device 1900including a variety of optional hardware and software components, showngenerally at 1902. Any components 1902 in the mobile device cancommunicate with any other component, although not all connections areshown, for ease of illustration. The mobile device can be any of avariety of computing devices (e.g., cell phone, smartphone, handheldcomputer, Personal Digital Assistant (PDA), etc.) and can allow wirelesstwo-way communications with one or more mobile communications networks1904, such as a cellular or satellite network.

The illustrated mobile device 1900 can include a controller or processor1910 (e.g., signal processor, microprocessor, ASIC, or other control andprocessing logic circuitry) for performing such tasks as signal coding,data processing, input/output processing, power control, and/or otherfunctions. An operating system 1912 can control the allocation and usageof the components 1902 and support for one or more application programs1914. The application programs can include common mobile computingapplications (e.g., email applications, calendars, contact managers, webbrowsers, messaging applications), or any other computing application.

The illustrated mobile device 1900 can include memory 1920. Memory 1920can include non-removable memory 1922 and/or removable memory 1924. Thenon-removable memory 1922 can include RAM, ROM, flash memory, a harddisk, or other well-known memory storage technologies. The removablememory 1924 can include flash memory or a Subscriber Identity Module(SIM) card, which is well known in GSM communication systems, or otherwell-known memory storage technologies, such as “smart cards.” Thememory 1920 can be used for storing data and/or code for running theoperating system 1912 and the applications 1914. Example data caninclude web pages, text, images, sound files, video data or other datasets to be sent to and/or received from one or more network servers orother devices via one or more wired or wireless networks. The memory1920 can be used to store a subscriber identifier, such as anInternational Mobile Subscriber Identity (IMSI), and an equipmentidentifier, such as an International Mobile Equipment Identifier (IMEI).Such identifiers can be transmitted to a network server to identifyusers and equipment.

The mobile device 1900 can support one or more input devices 1930, suchas a touch screen 1932, microphone 1934, camera 1935, physical keyboard1938 and/or trackball 1940 and one or more output devices 1950, such asa speaker 1952 and a display 1954. Other possible output devices (notshown) can include piezoelectric or other haptic output devices. Somedevices can serve more than one input/output function. For example,touchscreen 1932 and display 1954 can be combined in a singleinput/output device.

A wireless modem 1960 can be coupled to an antenna (not shown) and cansupport two-way communications between the processor 1910 and externaldevices, as is well understood in the art. The modem 1960 is showngenerically and can include a cellular modem for communicating with themobile communication network 1904 and/or other radio-based modems (e.g.,Bluetooth or Wi-Fi). The wireless modem 1960 is typically configured forcommunication with one or more cellular networks, such as a GSM networkfor data and voice communications within a single cellular network,between cellular networks, or between the mobile device and a publicswitched telephone network (PSTN).

The mobile device can further include at least one input/output port1980, a power supply 1982, a satellite navigation system receiver 1984,such as a Global Positioning System (GPS) receiver, an accelerometer1986, and/or a physical connector 1936, which can be the connectordescribed herein. The illustrated components 1902 are not required orall-inclusive, as any components can deleted and other components can beadded.

FIG. 20 illustrates a generalized example of a suitable implementationenvironment 2000 in which described embodiments, techniques, andtechnologies may be implemented.

In example environment 2000, various types of services (e.g., computingservices) can be provided by a cloud 2010. For example, the cloud 2010can comprise a collection of computing devices, which may be locatedcentrally, or distributed, that provide cloud-based services to varioustypes of users and devices connected via a network such as the Internet.The implementation environment 2000 can be used in different ways toaccomplish computing tasks. For example, some tasks (e.g., processinguser input and presenting a user interface) can be performed on localcomputing devices (e.g., connected devices 2030, 2040, 2050) while othertasks (e.g., storage of data to be used in subsequent processing) can beperformed in the cloud 2010.

In example environment 2000, the cloud 2010 provides services forconnected devices 2030, 2040, 2050 with a variety of screen or displaycapabilities. Connected device 2030 represents a device with a computerscreen 2035 (e.g., a mid-size screen). For example, connected device2030 could be a personal computer such as desktop computer, laptop,notebook, netbook or the like. Connected device 2040 represents a devicewith a mobile device screen 2045 (e.g., a small size screen). Forexample, connected device 2040 could be a mobile phone, smart phone,personal digital assistant, tablet computer and the like. Connecteddevice 2050 represents a device with a large screen 2055. For example,connected device 2050 could be a television screen (e.g., a smarttelevision) or another device connected to a television (e.g., a set-topbox or gaming console) or the like. One or more of the connected devices2030, 2040, 2050 can include touch screen capabilities. Touchscreens canaccept input in different ways. For example, capacitive touchscreensdetect touch input when an object (e.g., a fingertip or stylus) distortsor interrupts an electrical current running across the surface. Asanother example, touchscreens can use optical sensors to detect touchinput when beams from the optical sensors are interrupted. Physicalcontact with the surface of the screen is not necessary for input to bedetected by some touchscreens. Devices without screen capabilities alsocan be used in example environment 2000. For example, the cloud 2010 canprovide services for one or more computers (e.g., server computers)without displays.

Services can be provided by the cloud 2010 through service providers2020, or through other providers of online services (not depicted). Forexample, cloud services can be customized to the screen size, displaycapability, and/or touch screen capability of a particular connecteddevice (e.g., connected devices 2030, 2040, 2050).

In example environment 2000, the cloud 2010 provides the technologiesand solutions described herein to the various connected devices 2030,2040, 2050 using, at least in part, the service providers 2020. Forexample, the service providers 2020 can provide a centralized solutionfor various cloud-based services. The service providers 2020 can manageservice subscriptions for users and/or devices (e.g., for the connecteddevices 2030, 2040, 2050 and/or their respective users).

Accessory devices and host devices as described herein allow variousmobile computing operations to be performed. For example, an accessorydevice such as a car audio head unit could access an online marketplaceor other Internet-based services by using the wireless modemcapabilities of a connected host device. In another example, anaccessory device could access the Internet through the host device tocheck for the availability of firmware or software upgrades.

In yet another example, the connection of an accessory to a host couldinvoke an accessory-specific user interface or user experience on thehost or accessory device. For example, connection of an accessory deviceto a host device could invoke a user interface on the host device thatallows the host device user to browse and purchase applications that areapplicable or specific to the connected accessory. These applicationscould run on the host device and/or accessory device. In one example,upon connection of a host mobile phone to an accessory vehicle dock, themobile phone can access a marketplace offering applications specific tothe functions or functionality available through the vehicle dock, suchas vehicle diagnostic applications or upgrades for applications alreadyinstalled on the mobile phone or vehicle dock. The offered applicationsor services could be related to the specific vehicle type (make, modeland year), or to the class of vehicle (vehicles of a specific make). Inanother example, connection of a mobile phone to a vehicle dock caninvoke a host device user interface indicating nearby dealers ormechanics capable of serving the specific vehicle make and model ifvehicle diagnostic applications executing on the accessory devicecommunicate to the host device that the vehicle is in need of service.

In other examples, accessory-specific user experiences can be invoked bythe connection of a host device mobile phone to a personal or laptopcomputer, television, media player or other accessory device. Forexample, in response to connecting a mobile phone to a personalcomputer, a pop-up window can appear on the mobile phone screen askingthe mobile phone user if they are interested in browsing forapplications or devices related to the attached computer.Accessory-specific offers, notices or other related communications canbe related to the host device user in various ways, such as the userreceiving a text or an email regarding the accessory, anaccessory-specific application being executed on the host device, or aweb browser opening a webpage related to the connected accessory.

In addition to enabling accessory-specific purchases, the userexperience initiated upon connection of a host device to an accessorycan provide the host device user with various types ofaccessory-specific notices. In the automotive example, the user can benotified that the vehicle is due for scheduled maintenance. In thepersonal computer example, the user can be notified that firmware orsoftware upgrades are available for download over the network.Additional notices that can be communicated to the host device userinclude, for example, special offers made by the manufacturer of aconnected device.

Invocation of accessory-specific user experiences can be made uponconnection of a host device to an accessory, or at a later time. Forexample, if the host device is unable to wirelessly connect to a networkupon connection of the host device to the accessory, the host device canstore information relating to the connection (e.g., time of connection,accessory identifying information) and invoke the accessory-specificuser experience at a later time. For example, the user experience can beinvoked when the host device determines the availability of networkconnectivity or at another time in accordance with user preferences.

In one example of enabling accessory-specific user experiences, theaccessory device can store accessory-specific metadata. For example, anaccessory device can store information indicating the accessorycategory, type, class, subclass or the like. The metadata can alsoinclude information related to capabilities of the accessory.

Accessory metadata can be shared with a host device upon connection ofthe accessory to the host, or it can be provided upon request of thehost device. The host device can pass accessory metadata to the cloudfor use by various cloud services. For example, communication ofattribute accessories to an online marketplace can allow the marketplaceto tailor its offerings to products and services related to the attachedaccessory to the user of the host device.

As used herein, an accessory-specific user experience is the output ofaccessory-specific information at an interface of a mobile host deviceand/or an interface of an accessory device in any form (e.g., visual,audio). The accessory-specific information can comprise informationrelating to accessory-specific goods and services that have beenreceived from an online marketplace or already contained at the mobilehost device. The accessory-specific user experience can comprise one ormore user interface screens presented to a mobile host device user orthe execution of one or more software applications related to theattached accessory. For example, invocation of an accessory-specificuser experience invoked on a mobile phone attached to a home theaterdock could comprise the phone entering into a Music & Video Hub. As usedherein, the word hub refers to an operating context of the mobile hostdevice. The Music & Video Hub can, for example, be comprised of a Music& Video Hub home page presenting the user with one or more media-relatedsoftware applications or media content that can be downloaded, andexecuted on or output at the phone or the accessory. Such mediaapplications can provide, for example, the listing, purchase, download,editing, recording and playback of accessory-specific media content. Theaccessory-specific user experience can remain invoked on the mobile hostdevice as long as the associated accessory remains attached to themobile host device. In addition, the accessory-specific user experiencecould be invoked at a later time, even if the mobile host device is notconnected to the accessory. Once the accessory is detached, the mobilehost device can return to a default mode or hub, or remain in thecurrent hub.

The accessory-specific user experience can comprise altering userinterface characteristics. For example, the accessory-specific userexperience can comprise enabling a voice interface whereby the mobilehost device understands voice commands and provides voice outputs suchas turn-by-turn directions in a navigation application. In addition, theaccessory-specific user experience can increase the size of userinterface elements for easier viewing. Such changes in user interfacecharacteristics can be made by the mobile host device automatically uponconnection to an accessory, or the mobile host device can query a userwhether such changes should be made.

FIG. 21 is a block diagram of a mobile host device phone 2100 attachedto an accessory device home theater docking station 2110 and incommunication with a cloud computing environment 2120. The mobile phone2100 can communicate with online marketplaces 2131-2133. The hometheater docking station (home theater dock) 2110 can be connected tovarious combinations of media players and other home theater components.As depicted in FIG. 21, the home theater dock 2110 is connected to anaudio-visual receiver 2140, which is in turn connected to speakers2150-2151 and television 2160. The online marketplaces 2131-2133 can becloud-based (e.g., based in cloud computing environment 2120), asdepicted, or non-cloud-based (e.g., the online marketplaces services areavailable from local computing resources accessible over a localnetwork).

FIG. 22 is a flowchart of a first exemplary method 2200 of invoking anaccessory-specific user experience at a mobile host device. The method2200 could be executed by, for example, mobile phone 2100 connected tohome theater dock 2110. At 2210, accessory device information can bereceived from an accessory device connected to the mobile host device.The accessory device information can comprise one or more suggestedaccessory usage categories that indicate how the attached accessory isto be used. In the example, the mobile phone can receive accessorydevice information from the home theater dock and the accessory deviceinformation can comprise Home Theater Dock, Speaker Dock and ExternalBattery suggested usage categories, along with additional informationabout the home theater dock, such as media playback characteristics ofthe attached home theater components. At 2220, one of the suggestedaccessory usage categories can be selected as the accessory usagecategory. For example, the mobile phone can select the Home Theater Dockusage category as the accessory usage category for the home theaterdock. At 2230, the accessory device information can be transmitted to anonline marketplace over a wireless communication network. For example,the mobile phone can transmit the Home Theater Dock usage category alongwith the media playback capabilities of the home theater system to anonline marketplace over the Internet.

At 2240, information indicating one or more accessory-specific goods orservices can be received from the online marketplace over the wirelesscommunication network, the information based in part on the transmittedaccessory device information. In the example, the mobile phone canreceive information from the online marketplace over the Internet. Thereceived information can include, for example, software applications ormedia content that can be downloaded for installation at the mobile hostdevice or for playback at home theater system components attached to thehome theater dock. At 2250, the accessory-specific user experience canbe invoked at the mobile host device, the accessory-specific userexperience comprising displaying information relating to one or moreaccessory-specific goods or services from the online marketplace. In theexample, a software application such as a web browser can displayaccessory-specific software applications available for installation atthe mobile host device for supporting the home theater dock, firmwareupgrades for the home theater components, or media content available fordownloading and playback at the attached home theater system.

In some embodiments of the method 2250, information relating to theaccessory-specific user experience can be downloaded at the mobile hostdevice before the user experience is invoked. For example, the mobilehost device can download data relating to one or more user interfacescreens to be presented to a mobile host device user, or one or moreaccessory-specific software applications to be executed as part of theaccessory-specific user experience. In other embodiments,accessory-specific information can be stored at the mobile host devicein addition to being accessible from an online marketplace. For example,the mobile host device can check whether accessory-specific informationsuch as accessory-specific software applications or media content isstored at the mobile host device. If so, the mobile host device canaccess the stored accessory-specific information and display or executethe accessed information as part of the accessory-specific userexperience.

As described herein, online marketplaces are network-accessible servicesthat provide information relating to mobile host device accessories andaccessory-specific goods and services. Online marketplaces include, forexample, e-commerce and customer support websites. Accessory-specificgoods and services are those that are compatible or useable with aspecific accessory. As will be discussed in greater detail below, anaccessory-specific good or service can be compatible with a broad rangeof accessories (e.g., media content that can be played back at anyaccessory that has audio playback capabilities, regardless of themanufacturer), or a narrow one (e.g., software applications or upgradesthat are available only for a specific home theater dock make andmodel).

The online marketplaces can be accessible via the Internet or othernetworks, and can be accessed by a mobile host device via a wired orwireless connection, or a combination thereof. Accessory-specific goodsor services available include, for example, software applications,firmware, software and firmware upgrades, media content (e.g., audio,video, audio-visual), physical products (e.g., accessories, cables,connectors) and services (e.g., services offered by health kiosks, mediakiosks, gas stations, auto dealers). The goods and services can beoffered for sale or made available for free. Information relating to theaccessory-specific goods and services made available at the onlinemarketplaces can be supplied from various accessory retailers, vendors,developers, manufacturers and the like, as well as third parties. Onlinemarketplaces can be configured to allow independent hardware vendors(IHVs) to upload signed-binary accessory firmware images and softwareapplications. This information can include, for example, compatibility,technical specifications, availability, price and provider location.

In some embodiments, the method 2200 can comprise the mobile host devicedetecting attachment of an accessory to the mobile host device. Whenattached to the mobile host device, the accessory can be powered by thehost device, an external power supply or by its own battery.

In other embodiments, the method 2200 can comprise selectingaccessory-specific software applications, downloading the selectedsoftware applications, and installing the selected software applicationson the mobile host device or the accessory device. In some embodiments,the installed software applications can be executed on the host and/oraccessory devices. The mobile host device can execute a downloadedsoftware application automatically upon installation of the application,or in response to user input. The accessory-specific softwareapplications can be selected manually by a mobile host device user orautomatically by the mobile device. For example, the mobile device candetermine that it does not contain software that supports an attachedaccessory and automatically access an online marketplace to retrieve theappropriate software for installation at the mobile host device. Theretrieved software can be an upgrade to the mobile host device operatingsystem that contains the device drivers to support an attachedaccessory, or an accessory-specific software application that runs onthe existing mobile host device operating system.

A mobile host device may not contain the software to support an attachedaccessory for various reasons. For example, the support software mayhave been released or upgraded by the accessory developer after purchaseof the mobile host device or the accessory is of an accessory usagecategory that was not supported by the mobile host device when themobile host device was purchased. The mobile host device can query auser whether to access an online marketplace to access the relevantsupport software, or the mobile host device can retrieve and install thesupport software automatically.

FIG. 23 is an interior view 2300 of a vehicle 2305 with a mobile hostdevice 2310 attached to a vehicle docking station (vehicle dock) 2320.The vehicle dock 2320 can be integrated into the vehicle 2305 asdepicted, or separable from the vehicle 2305 (e.g., the vehicle dock2320 can be connected to the vehicle 2305 by a cable or other physicalconnection, allowing the vehicle dock 2320 to be used in multiplevehicles). The vehicle dock 2320 can access various functionalities(e.g., global positioning system capabilities) and vehicle information(e.g., fluid levels, system diagnostic information (e.g., engine,electrical, environmental)). In some embodiments, the vehicle dock 2320can communicate with media players integrated into the vehicle. Forexample, the vehicle dock can be in communication with a video display2330. The vehicle dock 2320 can display information received from themobile host device 2310 on the video display 2330 or output media orinformation to any other display in the vehicle.

In embodiments where the accessory device information comprises mediaplayer characteristics, the accessory-specific user experience cancomprise displaying information relating to media content adapted forplayback at a media player possessing the one or more media playercharacteristics. Media player characteristics indicate the capabilitiesof accessory media players and can indicate whether an accessory mediaplayer supports, for example, 3D, wide-screen or high definition videoplayback, or 5.1 or 7.1 surround sound speaker configurations. Themethod 2200 can further comprise selecting accessory-specific mediacontent, downloading the selected content to the mobile host device, andplaying the media at a media player possessing the media playercharacteristics (e.g., the accessory directly attached to the mobilehost device or an additional accessory or device connected to theaccessory).

In some embodiments, the accessory-specific user experience can provideproximity information for providers of accessory-specific goods andservices, such as a provider's geographical location or directions to aprovider. For example, in embodiments where a mobile host device isattached to a vehicle dock and the accessory information includesvehicle information (e.g., gas and oil level, system diagnostics), theuser experience can comprise displaying the location of nearby gasstations, mechanics or car dealers if the vehicle is low on fuel orvehicle diagnostics indicate that a repair or maintenance may be needed.An accessory-specific goods and services provider can be selected by theuser, or automatically by the mobile host device, and accessory deviceinformation can be transmitted from the mobile host device to theselected provider.

As described herein, accessory device information, or accessory devicemetadata, can comprise, for example, an accessory device usage category.A usage category indicates how an attached accessory device is to beused. An accessory can be associated with more than one usage category.Exemplary accessory usage categories include Alarm Clock Dock, VehicleDock, Speaker Dock, Home Theater Dock, Charge & Sync Dock and ExternalBattery, Fitness Kiosk and Media Kiosk. The set of usage categories canbe expanded and can comprise vendor-specific accessory categories.

A predefined set of actions can be associated with each usage categoryat the mobile host device. Additional actions associated with anaccessory usage category can be provided by the accessory device. Theset of actions associated with a usage category is expandable anddynamic. The mobile host device operating system and other software canbe updated to support additional usage categories or actions associatedwith usage categories. Each action associated with a usage category canhave an associated unique feature ID.

Upon connection of an accessory to a mobile host device, the accessorycan send a single usage category to the mobile host device, which thehost device identifies as the usage category for the accessory device.Alternatively, the accessory can send two or more suggested usagecategories to the mobile host device. The mobile host device can selectone of the suggested usage categories as the accessory usage categoryfor the attached accessory device. In some embodiments, the accessorydevice can prioritize (e.g., primary, secondary, tertiary) the suggestedusage categories. Once the mobile host device has identified or selecteda usage category for the attached category, the accessory is madeavailable for use by the mobile host device.

If more than one suggested usage categories are supplied by theaccessory device, the mobile host device can provide a negotiationmechanism by which an accessory device usage category is selected fromamong the suggested usage categories. For example, the mobile hostdevice can ask the host device user to select an accessory device usagecategory from among the provided suggested usage categories. The mobilehost device can query the user to select the accessory usage categorywhen the accessory device is first connected to the mobile host deviceand, optionally, upon subsequent attachments to the host device.Alternatively, the mobile host device can select the accessory deviceusage category automatically, for example, according to user specifiedor default policy settings or other priority schemes.

In some embodiments, the mobile host device can select the usagecategory based on characteristics of the mobile host device. Forexample, specified usage categories can be available only for specificmobile host devices. For example, a vendor-specific usage category canbe available for selection by the mobile host device only if the hostand accessory devices were made by the same manufacturer or sold by thesame retailer or vendor.

In other embodiments, the accessory usage category can be selecteddepending on the operating conditions of the mobile host device. Forexample, a mobile device can be configured such that a Home Theater Dockusage category or a Speaker Dock usage category is available if themobile device is currently operating in a specified hub, such as a Music& Video Hub. In another example, where a mobile host device isconfigured to switch to a Music & Video Hub upon connection to a speakerdock, the mobile host device can delay switching to the Music & VideoHub if the user is on a phone call or is entering or selecting a numberto dial. The mobile host device can be configured such that if the hostdevice is already operating in the Music & Video Hub when the hostdevice is connected to a speaker dock, the mobile device will remainoperating in the Music & Video Hub. If the mobile host device is bootingup or is in a low-power state, the Music & Video Hub can be displayedwhen the host device finishes booting up or exits the low-power state.

In further embodiments, an accessory device can select suggestedaccessory usage categories for sending to the mobile host device basedon the conditions of the accessory device. For example, if a hometheater dock capable of operating in a Home Theater Dock usage categoryor a Speaker Dock usage category is connected to a set of speakers, butnot to a television, the home theater dock can exclude the Home TheaterDock usage category from the list of usage categories sent to the mobilehost device.

The suggested accessory usage categories can also depend on theaccessory device operating environment. For example, an accessory canindicate to a connected mobile host device a change in the set of usagecategories that the accessory device may operate under. For instance, ifa home theater dock connected to a set of speakers and operating underthe Speaker Dock usage category is later connected to a television, theaccessory can indicate to the mobile host device that the Home TheaterDock usage category is now available. The host device user can benotified of the change in usage categories and be presented with theoption to switch to the new accessory usage category, or the mobile hostdevice can be configured to switch to the new usage categoryautomatically.

Alternatively, the accessory device can indicate a change in itsoperating environment to the mobile host device and the host device candetermine that certain usage categories are now available or unavailablebased on the change in the accessory device environment. For example, ahome theater dock can provide an indication to a mobile host device thatthe dock is now connected to a television, and the mobile host devicecan determine that the Home Theater Dock usage category is now availablefor selection. Thus, either the accessory device or the mobile devicecan cause the set of available accessory usage categories to berefreshed. The accessory usage categories can be refreshed based onchanges in the accessory device environment other than the addition orremoval of a device to/from the accessory, such as the accessory devicebattery level dropping below an operational threshold.

In some embodiments, the mobile device can switch from one accessoryusage category to another based on one or more actions performed by theuser of the mobile device. For example, if a host device is outputtingaudio media to an attached home theater dock operating in the SpeakerDock usage category, and user input at the host device causes the mobiledevice to output video media to the home theater dock, the mobile hostdevice can change the accessory device usage category from Speaker Dockto Home Theater Dock, if the Home Theater Dock accessory usage categoryis available for selection.

In addition to accessory device usage categories, the accessory deviceinformation can also comprise, for example, manufacturer, independentsoftware vendor or independent hardware vendor identifying informationsuch as the manufacturer name or a manufacturer identifier, and productidentifying information such as the product name, model, productionyear, type or a product identifier (e.g., serial number). Themanufacturer can be identified by the product identifier in additionalto being identified by the manufacturer information. In embodimentswhere the accessory device information comprises manufacturer andproduct identifying information, the accessory-specific user experiencecan, for example, comprise displaying only manufacturer- orvendor-approved accessory-specific goods and providing an indication ofsuch approval. In addition, the user experience can comprise listinggoods and services available only to specific accessories. For example,information related to subscription-based accessory-specific goods orservices can be displayed where the accessory device informationindicates that such a subscription has been purchased.

The accessory device information can be considered to be a set ofaccessory attributes and accessory attribute value pairs. Accessoryattributes can comprise accessory usage category, manufacturer name,product type, model number, serial number and any other type ofaccessory device information described herein (e.g., “Accessory UsageCategory,” “Product Type,” “Serial Number”). Accessory attribute valuescomprise values for each attribute (e.g., “Home Theater Dock,” “Zune,”“ABC1234”) and can comprise any combination of data types (e.g., string,floating number, integer, Boolean) convenient for representing possibleattribute values.

In any of the methods described herein, only a portion of the accessorydevice information received by the mobile host device may be transmittedto an online marketplace. For example, if the accessory deviceinformation for a vehicle dock comprises both vehicle information andmedia playback characteristics, the mobile host device may only transmitmedia playback characteristics if connected to a media-based onlinemarketplace. Filtering policies indicating which portions of theaccessory device information is to be sent to an online marketplace canbe provided by the mobile host device, the accessory device, the mobilehost device user and/or the online marketplace. Filtering policies canindicate which portions of the accessory device information are or arenot to be provided to an online marketplace. For example, an accessorydevice can provide an accessory device information filtering policyindicating that certain information about the accessory (e.g., serialnumber, operating system version number, and manufacturer) is not to beprovided to online marketplaces. Conflicting policies can be handled,for example, by associating a priority to each filtering policy andhaving the mobile device implement the policy having the highestpriority. For example, if a filtering policy provided by an onlinemarketplace indicates that the manufacturer and serial number of anaccessory is to be provided to the online marketplace, but a mobiledevice filtering policy indicates that accessory serial numberinformation is not to be shared with the online marketplace, and themobile device filtering policy has a higher priority than the onlinemarketplace priority, the mobile device can implement the filteringpolicy provided by the mobile device. Other techniques for resolvingconflicting policies known in the art can be used as well.

Accessory device information filtering policies can be updated byoperators of the online marketplace, accessory or mobile devicemanufacturers, or mobile host device users. For example, if a mobiledevice user considers an online marketplace to be abusing accessorydevice information provided to the marketplace by the mobile device(e.g., the accessory device information is being shared with thirdparties), the user can update the mobile device filtering policy toblock all or a portion of the accessory device information provided tothe online marketplace, or to block all accessory device informationfrom being sent to specified marketplaces. Accessory devicemanufacturers can similarly provide updated filtering policies for theaccessory devices.

The mobile host device can send information in addition to the accessorydevice information to an online marketplace such as informationpertaining to the mobile device (mobile device information) or a servicepurchased by a mobile device user (service information). For example, amobile host device user may have purchased a subscription to an onlineservice allowing the user access to certain media content at an onlinemarketplace. If the subscription is tied to the mobile host device, thesubscription information could be sent to the online marketplace asmobile device information. If tied to a mobile host device user, thesubscription information could be sent as service information. Thus, theinformation sent to the online marketplace can comprise accessory deviceinformation, mobile device information, service information or anycombination thereof.

Conflicts between the accessory device information, mobile deviceinformation and service information can be resolved, for example, byassigning a priority to each type of information as well as by othertechniques known in the art. For example, if the service informationindicates that a mobile host user has access to media content (e.g.,service information attribute “Subscription”=“Y”) but the mobile deviceinformation indicates that the host device does not have a subscriptionassociated with the device (mobile device information attribute“Subscription”=“N”), if the service information has a higher prioritythan the mobile device information, then the “Subscription”=“Y”attribute/attribute value pair can be sent to the online marketplace.

Accessory device information can also include information about theaccessory device's software (e.g., operating system, other software) orfirmware, interfaces supported by the accessory device and allowablepower configurations (e.g., battery-powered, host device-powered,externally-powered) and the like. In addition, the accessory deviceinformation can include information about additional accessories ordevices connected to the accessory device, such as speakers attached toa home theater dock. The additional accessories or devices can be inelectrical communication with the accessory via a wired or wirelessconnection.

In some embodiments, the accessory device information comprisesaccessory diagnostic information and the accessory-specific userexperience comprises the mobile host device sending accessory devicediagnostic information to an online marketplace or other entity that canassist in diagnosing or fixing an accessory device issue. For example,as part of the user experience, the mobile host device can present themobile device user the option to view Frequently-Asked-Questions (FAQ)webpages, on-line user forums, or initiate live interaction withcustomer support (e.g., text or video chat) related to the accessory.The accessory device internal diagnostic information can be generated byaccessory device software and/or hardware. Accessory device diagnosticinformation can be provided to the mobile host device upon connection ofthe accessory device to the mobile host, at periodic intervals, or upondetecting the accessory device entering a state for which a notificationis to be provided to the mobile host device.

In some embodiments, the mobile host device keeps track of the state ofthe accessory device. In a detached state, the host and accessorydevices are not physically connected. For example, in an embodimentwhere the host and accessory devices are connectable via areceptacle-plug mechanical coupling, the detached state can indicatethat a receptacle connector of the mobile host device is not mated witha plug connector of an accessory device. The mobile host device cantransition to the detached state from any of the other host devicestates. Detach detection can be disabled when the mobile host devicepower supply voltage or battery life is below an operational threshold.

In an attached state, a mobile host device is physically connected to anaccessory device. In a receptacle-plug connection configuration, theattached state can reflect that all of pins in the receptacle-plugconnection are available for querying by the mobile host device. Attachdetection can be supported independent of the presence or absence ofexternal power. The mobile host device can transition to the attachedstate from any of the other mobile device states. Attach detection canbe disabled when the mobile host device power supply voltage or batterylife is below an operational threshold.

In a connected state, the mobile host device can supply power to anattached accessory device. Alternatively the accessory device canprovide power to an attached mobile host device. A mobile host devicecan transition from the attached state to the connected state after boththe mobile host device and the attached accessory device are powered andbooted.

In a configured state, the mobile host device has enumerated thecapabilities of an accessory and exposed those capabilities through thehost device manager. The mobile device can transition to the configuredstate from the connected state. Once in the configured state, the mobilehost device can identify or select available usage categories.

In one embodiment, the accessory device can be a health kiosk. Uponconnection of a mobile host device to a health kiosk, a health-relateduser experience can be invoked at the mobile device. For example, themobile device can invoke a user experience that allows the user tomeasure their weight, pulse rate, body temperature, glucose levels andthe like. The mobile host device can compare current measurements tohistorical data (stored at the mobile host device or remotely), analyzetrends in the various metrics and notify the user of recommended actionsbased on the analysis. For example, the mobile host device can recommendthat the user exercise more if an upward trend in weight or bloodpressure is detected. Further, the mobile host device can access anonline marketplace to retrieve information relating to the detection ofany potential health issues with the patient. For example, the mobilehost device can present various health-related software applications(e.g., nutritional and exercise databases, diet and fitness trackers)available for download from the online marketplace, the location ofnearby health food stores and exercise facilities and the like.

In another embodiment, the accessory device can be a media kiosk. Uponconnection of a mobile host device to a media kiosk, a media-relateduser experience can be invoked at the mobile host device. For example,the mobile device can enter into a Music & Video Hub and invoke amedia-related user experience. The user can perform various operationswhile in the Music & Video Hub such as selecting media for purchase,renting, download or streaming from an online marketplace or the mediakiosk; burning media onto a CD or DVD; and processing or printing imagesstored on the mobile host device at the kiosk.

In embodiments where the mobile host device is connected to an accessorydevice vehicle docking station, the accessory-specific user experiencecan comprise the mobile host device entering a vehicle mode ofoperation. Entering a vehicle mode of operation can comprise the mobilehost device loading a vehicle mode application and executing the vehiclemode application at the mobile host device. If the mobile host devicedetermines that no vehicle mode application is stored at the mobile hostdevice, the mobile phone can query the user whether to search an onlinemarketplace for a vehicle mode application that is compatible with theattached vehicle dock. If so, the mobile host device can transmitaccessory device information indicating, for example, the make, modeland other information about the connected vehicle to an onlinemarketplace. The mobile host device can invoke a list ofvehicle-specific goods and services and present a filtered view ofvehicle mode applications available from an online marketplace that arespecific to the attached vehicle. The user can select a vehicle modeapplication for download, installation and execution at the mobile hostdevice. The mobile host device can contain multiple vehicle modeapplications, and the user can select a default vehicle mode applicationthat can be invoked when the mobile host device is attached to thevehicle dock. The mobile host device can delay or prevent entry into thevehicle mode of operation or execution of a vehicle mode application ifthe user is currently on a call or selecting a contact to dial. In someembodiments, the vehicle mode application can be a navigationapplication. The navigation application can utilize global positioningsystem capabilities of the vehicle dock or of the attached vehicle. Ifthe phone is booting up or transitioning from a low-power state to anormal power state, the mobile host device can display the defaultvehicle mode application.

When operating in a vehicle mode of operation, the mobile host devicecan provide notifications based on driving conditions. For example, themobile host device can receive information from an online marketplace(e.g., road condition alerts provided a state's Department ofTransportation) or other sources (e.g., Safety Warning System (SWS) orSafety-Alert System (SAS) signals) indicating traffic, weather and roadconditions or the presence of emergency vehicles, and notifying thedriver accordingly.

The accessory-specific user experience can comprise changing userinterface characteristics to provide a safer interface to a user who isactively driving a vehicle. For example, the accessory-specific userexperience can enable a voice interface to allow the user to interactwith the mobile host device while the user is driving. For instance, avoice interface can understand voice commands and provide voice outputsuch as turn-by-turn driving directions. In addition, theaccessory-specific user experience can comprise displaying informationon a display of the mobile host device at an increased font sizerelative to information displayed on the display prior to invoking theaccessory-specific user experience. Further, additional user interfaceelements such as buttons can be displayed at an increased size uponinvocation of the accessory-specific user experience.

In other embodiments, the accessory device can be a personal or laptopcomputer, or other computing device. In response to connecting a mobilephone to a personal computer in such embodiments, a pop-up window canappear on the mobile phone screen asking the mobile phone user if theyare interested in browsing for applications or devices that can beexecuted on or attached to the computing device. If so, the mobile phonecan transmit accessory device information received from the connectedcomputer to an online marketplace and receive information relating togoods and services specific to the attached computer. The user canselect, for example, one or more of the accessory-specific softwareapplications for download and installation at the mobile host device orthe attached computer.

An accessory-specific user experience invoked at a mobile host devicecan provide the host device user with various types ofaccessory-specific notices, offers or other communications. Such noticescan be related to the host device user in various ways, such as the userreceiving a text or an email regarding the accessory, anaccessory-specific software application being executed on the hostdevice, or a web browser opening a webpage related to the connectedaccessory. In embodiments where the accessory is a vehicle dock, theuser can be notified that the vehicle is due for scheduled maintenanceor needs gas (e.g., the vehicle has a specified amount of gas left orthere is not enough gas left to reach the next gas station based on thelocation of the vehicle and the nearest gas station). Additionally, themobile host device can access online marketplaces for factory servicebulletins, recalls, special offers, or any other notifications from anaccessory manufacturer, vendor, retailer, and notify the user of suchinformation.

In some embodiments, upon the first enumeration of an accessory with amobile host device, the mobile host device can check for a softwareapplication associated with or tied to the accessory at an onlinemarketplace or on the mobile host device. A software applicationinstalled on the mobile host device can be notified by the mobile hostdevice of the arrival and departure of an accessory associated with thesoftware application. For example, a user can attach an infrared (IR)dongle for use as a home theater remote control to a mobile host devicephone, causing the phone to enumerate the IR dongle. The phone can thencheck one or more online marketplaces and find that the manufacturer ofthe IR dongle, or a third party, has published a universal remotecontrol application. The phone can query the user whether they wish theremote control application to be installed. The user can select toinstall the application and the application is downloaded to the phoneand installed. The remote control application is then loaded and theuser can execute the application.

FIG. 24 is a flowchart of an exemplary method 2400 of providingaccessory-specific information to a mobile host device from an onlinemarketplace. The method 2400 can be performed, for example, by a serverhosting an online marketplace and operated by a vehicle manufacturerproviding goods and services for vehicles sold by the manufacturer. At2410, accessory device information is received from a mobile host deviceover a wireless communication network, the mobile host device beingconnected to an accessory device. In the example, the mobile phone cantransmit accessory device information about the vehicle (e.g., make,model, diagnostic information, current software and firmware versionsinstalled in the vehicle) to the vehicle manufacturer server. At 2420,one or more accessory-specific goods or services are selected based onthe accessory device information. In the example, the vehiclemanufacturer server can select goods and services that are indicated asbeing associated with or are compatible with the vehicle attached to themobile phone, based on the received accessory device information. At2430, information indicating the selected one or more accessory-specificgoods or services is transmitted to the mobile host device over thewireless communication network. In the example, the vehicle manufacturerserver can transmit information indicating the selected goods orservices to the mobile phone.

In any of the embodiments described herein, the accessory deviceinformation can comprise one or more accessory attribute values for oneor more accessory attributes. The online marketplace can comprise adatabase that associates goods and services with various accessories byassociating the goods and services with one or more accessory attributevalues. For example, the online marketplace can comprise a databasecomprising a plurality of entries, wherein each entry comprisesinformation indicating a good or service and one or more associatedaccessory attribute values. The online marketplace can selectaccessory-specific goods and services based on the accessory deviceinformation by matching attribute values included in the accessorydevice information with attribute values associated withaccessory-specific goods and services stored in the online marketplacedatabase. Thus, at least one accessory attribute value associated witheach of the selected accessory-specific goods or services can match atleast one accessory attribute value of the accessory device information.

For example, if the accessory device information comprises accessoryattribute values “Vehicle Dock” “Ford”, “Taurus” and “2004” foraccessory attributes “Accessory Usage Category” “Manufacturer,” “Model”and “Year,” the accessory-specific goods and services selected by anonline marketplace can include software applications and upgrades forFord Taurus vehicles built in 2004. Accessory-specific goods andservices can be associated with fewer or more accessory attributevalues, as desired by the goods or services provider. For example, if asoftware application available at an online marketplace is compatiblewith any accessory that possesses audio playback capabilities, thesoftware application could be associated with, for example, theaccessory attribute value “Y” for an accessory attribute “Audio.” Goodsand services designed to operate with specific products can beassociated with a greater number of accessory attribute values. Forexample, an application that provides access to media content availableonly to paid subscribers of the content and only to owners of a specificaccessory can be associated with the accessory attribute values “HomeTheater Dock,” “Microsoft” and “Premium” for accessory attributes“Accessory Usage Category,” “Manufacturer” and “Subscription Level.”

Online marketplaces can work with mobile host device update services.That is, the mobile host device can be configured to periodically accessthe online marketplace to check for firmware or software upgrades, or benotified by online marketplaces that such upgrades are available.

Information transmitted to the mobile host device from an onlinemarketplace indicating selected accessory-specific goods and servicescan comprise information that controls the order or arrangement in whichthe goods or services are presented to the user as part of theaccessory-specific user experience. For example, the goods and servicescan be ranked based on popularity, price, availability or otherfiltering approaches as known in the art.

FIG. 25 is a flowchart of a second exemplary method 2500 of invoking anaccessory-specific user experience at a mobile host connected to anaccessory device via an accessory adapter such as a docking station. Themethod 2500 can be executed by, for example, a mobile host device phoneconnected to a home theater docking station that is in turn connected toan audio-visual receiver. At 2510, connection of the mobile host devicean accessory adapter is detected. In the example, the phone detectsconnection of the home theater docking station to the phone. At 2520,accessory device information about an accessory device connected to theaccessory adapter is received at the mobile host device. In the example,accessory device information about the audio-visual receiver is receivedat the mobile host device. At 2530, the accessory device information issent to an online marketplace from the mobile host device over awireless communication network. In the example, the accessoryinformation about the audio-visual receiver such as software or firmwareinstalled at the receiver, receiver make and model, media playbackcapabilities is sent to an online marketplace. At 2540, informationindicating one or more accessory-specific goods or services is receivedfrom the online marketplace, the information being transmitted over thewireless network and based in part on the transmitted accessory deviceinformation. In the example, the mobile host device can receiveinformation indicating that software or firmware upgrades are availablefor this particular audio-visual receiver make and model, and thatsoftware applications are available for execution on the mobile hostdevice for supporting the receiver. At 2550, an accessory-specific userexperience is invoked at the mobile host device. In this example, themobile host device can invoke a Music & Video Hub allowing the user to,for example, select software applications, software upgrades and mediacontent for installation or playback at the accessory devices connectedto the home theater docking station.

An accessory adapter can be either separable or integral to an accessorydevice. FIG. 21 shows an example of an accessory adapter, e.g., hometheater docking station 2110, that is separable from the audio-visualreceiver 2140. The dock 2110 can be disconnected from the receiver 2140by unplugging the cable 2180 from the receiver 2140. In addition tobeing capable of connecting to an accessory device via a wiredconnection, any of the mobile host devices described herein can beconnected to an accessory device via a wireless connection.

FIG. 26 illustrates an exemplary mobile host device 2600 attached to anaccessory adapter, speaker docking station 2610, integrated into a mediaplayer 2620. The integrated speaker docking station 2610 can be definedby the physical interface that is capable of mating with the mobile hostdevice input/output port and any associated electronics. The additionalaccessory devices can comprise additional components of the media player2620 such as speakers 2630-2633.

Although the operations of some of the disclosed methods are describedin a particular, sequential order for convenient presentation, it shouldbe understood that this manner of description encompasses rearrangement,unless a particular ordering is required by specific language set forthbelow. For example, operations described sequentially may in some casesbe rearranged or performed concurrently. Moreover, for the sake ofsimplicity, the attached figures may not show the various ways in whichthe disclosed methods can be used in conjunction with other methods.

Any of the disclosed methods can be implemented as computer-executableinstructions stored on one or more computer-readable storage media(e.g., non-transitory computer-readable media, such as one or moreoptical media discs, volatile memory components (such as DRAM or SRAM),or nonvolatile memory components (such as hard drives)) and executed ona computer (e.g., any commercially available computer, including smartphones or other mobile devices that include computing hardware). Any ofthe computer-executable instructions for implementing the disclosedtechniques as well as any data created and used during implementation ofthe disclosed embodiments can be stored on one or more computer-readablemedia (e.g., non-transitory computer-readable media). Thecomputer-executable instructions can be part of, for example, adedicated software application or a software application that isaccessed or downloaded via a web browser or other software application(such as a remote computing application). Such software can be executed,for example, on a single local computer (e.g., any suitable commerciallyavailable computer) or in a network environment (e.g., via the Internet,a wide-area network, a local-area network, a client-server network (suchas a cloud computing network), or other such network) using one or morenetwork computers.

For clarity, only certain selected aspects of the software-basedimplementations are described. Other details that are well known in theart are omitted. For example, it should be understood that the disclosedtechnology is not limited to any specific computer language or program.For instance, the disclosed technology can be implemented by softwarewritten in C++, Java, Perl, JavaScript, Adobe Flash, or any othersuitable programming language. Likewise, the disclosed technology is notlimited to any particular computer or type of hardware. Certain detailsof suitable computers and hardware are well known and need not be setforth in detail in this disclosure.

Furthermore, any of the software-based embodiments (comprising, forexample, computer-executable instructions for causing a computer toperform any of the disclosed methods) can be uploaded, downloaded, orremotely accessed through a suitable communication means. Such suitablecommunication means include, for example, the Internet, the World WideWeb, an intranet, software applications, cable (including fiber opticcable), magnetic communications, electromagnetic communications(including RF, microwave, and infrared communications), electroniccommunications, or other such communication means.

Additional embodiments and aspects of the technologies described hereinare described in the following numbered embodiments.

Embodiment 1

A method of providing accessory-specific information to a mobile hostdevice (2100, 2310, 2600) from an online marketplace (2131), the methodcomprising: at an online marketplace (2131), receiving accessory deviceinformation from a mobile host device (2100, 2310, 2600) over a wirelesscommunication network, the mobile host device (2100, 2310, 2600) beingconnected to an accessory device, the accessory device (2110, 2140,2305, 2320, 2610, 2630) information being associated with the accessorydevice (2110, 2140, 2305, 2320, 2610, 2630); selecting one or moreaccessory-specific goods or services based on the accessory device(2110, 2140, 2305, 2320, 2610, 2630) information; and transmittingaccessory-specific information indicating the selected one or moreaccessory-specific goods or services to the mobile host device (2100,2310, 2600) over the wireless communication network.

Embodiment 2

The method of any of the previous numbered embodiments wherein theaccessory device (2110, 2140, 2305, 2320, 2610, 2630) informationcomprises one or more accessory attribute values; and the onlinemarketplace (2131) comprises a database, the database comprising aplurality of entries, respective of the entries comprising informationindicating a good or service and one or more associated accessoryattribute values, at least one of the one or more accessory attributevalues associated with each of the selected one or moreaccessory-specific goods or services matching at least one accessoryattribute value of the accessory device (2110, 2140, 2305, 2320, 2610,2630) information.

Embodiment 3

The method of any of the previous numbered embodiments wherein the oneor more accessory attribute values of the accessory device (2110, 2140,2305, 2320, 2610, 2630) information comprises a product identifierand/or a manufacturer identifier.

Embodiment 4

A method of invoking an accessory-specific user experience at a mobilehost device, comprising: receiving accessory device (2110, 2140, 2305,2320, 2610, 2630) information from an accessory device (2110, 2140,2305, 2320, 2610, 2630) connected to the mobile host device, theaccessory device (2110, 2140, 2305, 2320, 2610, 2630) informationcomprising one or more suggested accessory usage categories; selectingone of the one or more suggested accessory usage categories as anaccessory usage category for the accessory device (2110, 2140, 2305,2320, 2610, 2630); transmitting the accessory device (2110, 2140, 2305,2320, 2610, 2630) information to an online marketplace (2131) over awireless communication network; receiving information indicating one ormore accessory-specific goods or services from the online marketplace(2131) over the wireless communication network based in part on thetransmitted accessory device (2110, 2140, 2305, 2320, 2610, 2630)information; and invoking the accessory-specific user experience at themobile host device, the accessory-specific user experience comprisingdisplaying information relating to the one or more accessory-specificgoods or services from the online marketplace.

Embodiment 5

The method of embodiment 4 wherein the one or more accessory-specificgoods or services comprises one or more accessory-specific softwareapplications, the method further comprising: selecting at least one ofthe one or more accessory-specific software applications; downloadingthe selected at least one accessory-specific software application;installing the selected at least one accessory-specific softwareapplication; and optionally executing one of the selected at least oneaccessory-specific software applications on the mobile host device(2100, 2310, 2600).

Embodiment 6

The method of any of the embodiments 4-5 wherein the accessory device(2110, 2140, 2305, 2320, 2610, 2630) information comprises one or moremedia player characteristics, and the accessory-specific user experiencecomprises displaying information relating to media content adapted forplayback at a media player (2140, 2330, 2620) possessing the one or moremedia player characteristics.

Embodiment 7

The method of any of the embodiments 4-6 wherein the accessory-specificuser experience comprises displaying proximity information for at leastone provider of the one or more accessory-specific goods and services.

Embodiment 8

The method of any of the embodiments 4-7 further comprising: selectingone of the at least one providers of the one or more accessory-specificgoods and services; and transmitting the accessory device (2110, 2140,2305, 2320, 2610, 2630) information to the selected provider of the oneor more accessory-specific goods and services.

Embodiment 9

A method of invoking an accessory-specific user experience at a mobilehost device, comprising: detecting connection of the mobile host device(2100, 2310, 2600) to an accessory adapter; at the mobile host device,receiving accessory device (2110, 2140, 2305, 2320, 2610, 2630)information about an accessory device (2110, 2140, 2305, 2320, 2610,2630) connected to the accessory adapter; transmitting the accessorydevice (2110, 2140, 2305, 2320, 2610, 2630) information to an onlinemarketplace (2131) over a wireless communication network; receivinginformation indicating one or more accessory-specific goods or servicesfrom the online marketplace (2131) over the wireless communicationnetwork based in part on the transmitted accessory device (2110, 2140,2305, 2320, 2610, 2630) information; and invoking the accessory-specificuser experience at the mobile host device, the accessory-specific userexperience comprising displaying information relating to the one or moreaccessory-specific goods or services from the online marketplace.

Embodiment 10

The method of embodiment 9 wherein the accessory device (2110, 2140,2305, 2320, 2610, 2630) is separable from the accessory adapter.

1. A method of providing accessory-specific information, the methodcomprising: receiving, at an online marketplace, accessory deviceinformation over a communication network, the accessory deviceinformation comprises one or more accessory attribute values; selectingone or more accessory-specific goods or services based on the one ormore accessory attribute values of the accessory device information; andtransmitting accessory-specific information indicating the selected oneor more accessory-specific goods or services over the communicationnetwork.
 2. The method of claim 1, wherein: the online marketplacecomprises a database, the database comprising a plurality of entries,the entries comprising information indicating a good or service and oneor more associated accessory attribute values, at least one of the oneor more accessory attribute values associated with each of the selectedone or more accessory-specific goods or services matching at least oneaccessory attribute value of the accessory device information. 3.(canceled)
 4. The method of claim 2, wherein: the one or more accessoryattribute values of the accessory device information comprises at leasta product identifier and/or a manufacturer identifier.
 5. The method ofclaim 1, wherein the selected one or more accessory-specific goods orservice comprises at least one software application. 6.-20. (canceled)21. The method according to claim 1, wherein the selecting comprises:matching the one or more accessory attribute values from the receivedaccessory device information with the one or more accessory attributevalues associated with the one or more accessory-specific goods orservices.
 22. The method according to claim 21, wherein the one or moreaccessory attribute values comprise at least one of a data string, afloating number, an integer, or a Boolean value.
 23. The method of claim1, wherein the transmitted accessory-specific information comprises afirmware upgrade.
 24. An online marketplace environment providingaccessory-specific information, the environment comprising: one or morecomputing devices comprising processing units and memory; and the one ormore computing devices configured to perform operations supportingproviding the accessory-specific information, the operations comprising:receiving by the one or more computing devices, accessory deviceinformation over a communication network; selecting one or moreaccessory-specific goods or services based on the accessory deviceinformation; and transmitting accessory-specific information indicatingthe selected one or more accessory-specific goods or services over thecommunication network.
 25. The online marketplace environment of claim24, wherein: the accessory device information comprises one or moreaccessory attribute values; and the online marketplace environmentcomprises a database, the database comprising a plurality of entries,the entries comprising information indicating a good or service and oneor more associated accessory attribute values, at least one of the oneor more accessory attribute values associated with each of the selectedone or more accessory-specific goods or services matching at least oneaccessory attribute value of the accessory device information.
 26. Theonline marketplace environment of claim 25, wherein: the one or moreaccessory attribute values of the accessory device information comprisesat least a product identifier and/or a manufacturer identifier.
 27. Theonline marketplace environment according to claim 25, wherein the one ormore accessory attribute values comprise at least one of a data string,a floating number, an integer, or a Boolean value.
 28. The onlinemarketplace environment of claim 24, wherein the selected one or moreaccessory-specific goods or service comprises at least one softwareapplication.
 29. The online marketplace environment according to claim24, wherein the selecting comprises: matching the one or more accessoryattribute values from the received accessory device information with theone or more accessory attribute values associated with the one or moreaccessory-specific goods or services.
 30. The online marketplaceenvironment of claim 24, wherein the transmitted accessory-specificinformation comprises a firmware upgrade.
 31. A computer-readable memorystoring computer-executable instructions for causing a computing devicein an online marketplace environment to perform a method of providingaccessory-specific information, the method comprising: receivingaccessory device information over a communication network, wherein: theaccessory device information comprises one or more accessory attributevalues; and the online marketplace comprises a database, the databasecomprising a plurality of entries, the entries comprising informationindicating a good or service and the one or more accessory attributevalues; selecting one or more accessory-specific goods or services basedon the one or more accessory attribute values of the accessory deviceinformation; and transmitting accessory-specific information indicatingthe selected one or more accessory-specific goods or services over thecommunication network.
 32. The online marketplace environment of claim31, wherein: at least one of the one or more accessory attribute valuesassociated with each of the selected one or more accessory-specificgoods or services matches at least one accessory attribute value of theaccessory device information.
 33. The online marketplace environment ofclaim 31, wherein: the one or more accessory attribute values of theaccessory device information comprises at least a product identifierand/or a manufacturer identifier.
 34. The online marketplace environmentaccording to claim 31, wherein the one or more accessory attributevalues comprise at least one of a data string, a floating number, aninteger, or a Boolean value.
 35. The online marketplace environment ofclaim 31, wherein the selected one or more accessory-specific goods orservice comprises at least one software application.
 36. The onlinemarketplace environment according to claim 31, wherein the selectingcomprises: matching the one or more accessory attribute values from thereceived accessory device information with accessory attribute valuesassociated with the one or more accessory-specific goods or services.